软件工程ppt-05详细设计课件

上传人:20****08 文档编号:240686943 上传时间:2024-04-30 格式:PPT 页数:130 大小:1.61MB
返回 下载 相关 举报
软件工程ppt-05详细设计课件_第1页
第1页 / 共130页
软件工程ppt-05详细设计课件_第2页
第2页 / 共130页
软件工程ppt-05详细设计课件_第3页
第3页 / 共130页
点击查看更多>>
资源描述
授课教师授课教师:梁丽梁丽西华大学数学与计算机学院西华大学数学与计算机学院授课教师:梁丽软件工程西华大学数学与计算机学院1我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物第五章第五章详细设计详细设计l内容要点:内容要点:本章主要介绍详细设计的基本任务、描述本章主要介绍详细设计的基本任务、描述方法和设计方法。方法和设计方法。l教学重点:教学重点:l详细设计的基本任务详细设计的基本任务l教学难点:教学难点:l流程图、流程图、PAD图及过程设计语言图及过程设计语言第五章详细设计内容要点:2详细设计与总体设计详细设计与总体设计详详细细设设计计以以总总体体设设计计阶阶段段的的工工作作为为基基础础,但但又又不同于总体设计阶段,主要表现为以下两方面:不同于总体设计阶段,主要表现为以下两方面:(1)在在总总体体设设计计阶阶段段,数数据据项项和和数数据据结结构构以以比比较较抽抽象象的的方方式式描描述述,例例如如,总总体体设设计计可可以以申申明明一一组组值值从从概概念念上上表表示示一一个个矩矩阵阵,详详细细设设计计就就要要确确定定用用什什么么数数据据结结构来实现这样的矩阵。构来实现这样的矩阵。(2)详详细细设设计计要要提提供供关关于于算算法法的的更更多多的的细细则则,例例如如,总总体体设设计计可可以以申申明明一一个个模模块块的的作作用用是是对对一一个个表表进进行行排排序序,详详细细设设计计则则要要求求确确定定使使用用哪哪种种排排序序算算法法。在在详详细细设设计计阶阶段段为为每每个个模模块块增增加加了了足足够够的的细细节节,使使得得程程序序员员能够以相当直接的方式编码每个模块。能够以相当直接的方式编码每个模块。详细设计与总体设计详细设计以总体设计阶段的工作为基础,但又3因因此此,详详细细设设计计的的模模块块包包含含实实现现对对应应的的总总体体设设计计的的模模块所需要的处理逻辑,主要有:块所需要的处理逻辑,主要有:(1)详细的算法)详细的算法(2)数据表示和数据结构)数据表示和数据结构(3)实施的功能和使用的数据之间的关系)实施的功能和使用的数据之间的关系每个模块被编码成过程、子程序、函数或企图类型每个模块被编码成过程、子程序、函数或企图类型的命名实体。的命名实体。详细设计的目的详细设计的目的是具体确定实现目标系统的精是具体确定实现目标系统的精确描述,确描述,即对系统中每个模块的内部过程进行设计和描即对系统中每个模块的内部过程进行设计和描述。述。使程序员可以将这种描述直接翻译为某种语言程序。使程序员可以将这种描述直接翻译为某种语言程序。详细设计与总体设计详细设计与总体设计因此,详细设计的模块包含实现对应的总体设计的模块所需要4详细设计阶段详细设计阶段:根本目标根本目标是确定应该怎样具体地实现所要是确定应该怎样具体地实现所要求的系统。求的系统。概念概念详细设计主要确定每个模块具体执行详细设计主要确定每个模块具体执行过程,也称过程设计。详细设计的结果基过程,也称过程设计。详细设计的结果基本上决定了最终的程序代码的质量。本上决定了最终的程序代码的质量。详细设计的任务详细设计的任务不是编写程序不是编写程序,而是要设而是要设计出程序的计出程序的“蓝图蓝图”,便于以后根据这个,便于以后根据这个蓝图写出实际的程序代码。蓝图写出实际的程序代码。详细设计阶段:根本目标是确定应该怎样具体地实现所要求的系统。5我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物为每个模块进行详细的算法设计为每个模块进行详细的算法设计。用某种图形、用某种图形、表格、语言等工具将每个模块处理过程的详细表格、语言等工具将每个模块处理过程的详细算法描述出来。算法描述出来。为模块内的数据结构进行设计。为模块内的数据结构进行设计。对数据库进行物理设计,对数据库进行物理设计,即确定数据库的物理即确定数据库的物理结构。结构。其他设计。其他设计。根据软件系统类型,可能要进行代根据软件系统类型,可能要进行代码设计、输入码设计、输入/输出格式设计、人机对话设计。输出格式设计、人机对话设计。编写详细设计说明书。编写详细设计说明书。评审。评审。评审处理过程的算法和数据库的物理结评审处理过程的算法和数据库的物理结构。构。详细设计的基本任务详细设计的基本任务:为每个模块进行详细的算法设计。用某种图形、表格、语言等工6结构程序设计结构程序设计(SP)SP)结构化程序设计是一种典型的结构化程序设计是一种典型的面向数据面向数据流流的软件设计方法,它采用采用的软件设计方法,它采用采用自顶向下、自顶向下、逐步求精逐步求精的设计方法和的设计方法和单入口单出口单入口单出口的控制的控制结构,且只包含结构,且只包含顺序顺序、选择选择和和重复重复3 3种结构。种结构。基本要点是:基本要点是:采用自顶向下、逐步求精的程序设计方法采用自顶向下、逐步求精的程序设计方法:详细设计中某个模块内部处理过程仍然可以详细设计中某个模块内部处理过程仍然可以逐步求精,降低处理细节的复杂程度。逐步求精,降低处理细节的复杂程度。结构程序设计(SP)结构化程序设计是一种典型的面向数据流的7结构程序设计结构程序设计 使用使用3 3种基本控制结构(顺序、选择和重种基本控制结构(顺序、选择和重复,其共同点是单入口、单出口)构造程序:复,其共同点是单入口、单出口)构造程序:用顺序方式对过程分解,确定各部分用顺序方式对过程分解,确定各部分的执行顺序。的执行顺序。用选择方式对过程分解,确定某个部用选择方式对过程分解,确定某个部分的执行条件。分的执行条件。用循环方式对过程分解,确定某个部用循环方式对过程分解,确定某个部分进行循环的开始和结束的条件。分进行循环的开始和结束的条件。对于处理过程仍然模糊的部分反复使对于处理过程仍然模糊的部分反复使用以上分解方法,最终将所有细节确定下来。用以上分解方法,最终将所有细节确定下来。结构程序设计使用3种基本控制结构(顺序、选择和重复,其共8我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物n n 严格控制GOTO语句,仅在下列情形才可使用:用一个非结构化的程序设计语言去实现一个结构化的构造。若不使用GOTO语句就会使程序功能模糊。在某种可以改善而不是损害程序可读性的情况下。严格控制GOTO语句,仅在下列情形才可使用:用一个非9我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物结构化程序设计的主要原则结构化程序设计的主要原则例例打印打印A,B,C三数中最小者的程序三数中最小者的程序结构化程序设计的主要原则例打印A,B,C三数中最小者10我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物程序1if(A B)goto b12;if(B C)goto b11;b10:printf(“%d”,C);goto b14;b11:printf(“%d”,B);gotob14;b12:if(A C)goto b13;goto b10;b13:printf(“%d”,A);b14:程序111我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物程序2if(A B and A C)printf(“%d”,A);elseif(A B and B C)printf(“%d”,B);else printf(“%d”,C);程序212结构程序设计结构程序设计主程序员组的组织形式:主程序员组的组织形式:突出主程序员的突出主程序员的领导,设计责任集中在少数人身上,有利于领导,设计责任集中在少数人身上,有利于提高软件质量和软件生产率。其组织形式是:提高软件质量和软件生产率。其组织形式是:一个主程序员:负责全部技术活动。一个主程序员:负责全部技术活动。一个后备程序员:协调、支持主程序一个后备程序员:协调、支持主程序员。员。一个程序管理员:负责事务性工作,一个程序管理员:负责事务性工作,如收集、记录数据,文档资料管理等。如收集、记录数据,文档资料管理等。一些专家(如通信专家、数据库专家)。一些专家(如通信专家、数据库专家)。其他技术人员。其他技术人员。结构程序设计主程序员组的组织形式:突出主程序员的领导,设计13自顶向下,逐步求精自顶向下,逐步求精 在详细设计和编码阶段,应当采取自在详细设计和编码阶段,应当采取自顶向下,逐步求精的方法。顶向下,逐步求精的方法。把一个模块的功能逐步分解,细化为把一个模块的功能逐步分解,细化为一系列具体的步骤,进而翻译成一系列一系列具体的步骤,进而翻译成一系列用某种程序设计语言写成的程序。用某种程序设计语言写成的程序。自顶向下,逐步求精在详细设计和编码阶段,应当采取自顶向下14自顶向下,逐步求精自顶向下,逐步求精例,用筛选法求例,用筛选法求100100以内的素数以内的素数 筛选法就是从筛选法就是从2 2到到100100中去掉中去掉2,3,9,102,3,9,10的倍数,剩下的就是的倍数,剩下的就是100100以以内的素数。内的素数。为了解决这个问题,可先按程序功能为了解决这个问题,可先按程序功能写出一个框架。写出一个框架。自顶向下,逐步求精例,用筛选法求100以内的素数15main()/程序框架建立2到100的数组A,其中Aii;-1 建立2到10的素数表 B,其中存放2 到10以内的素数;-2 若Aii是B 中任一数的倍数,则 剔除Ai;-3 输出A 中所有没有被剔除的数;-4main()/程序框架16main()/*建立2到100的数组A,其中Aii*/for(i=2;i=100;i+)Ai=i;/*建立2到10的素数表B,其中存放2到10以内的素数*/B1=2;B2=3;B3=5;B4=7;/*若Aii是B 中任一数的倍数,则剔除Ai*/for(j=1;j=4;j+)检查A 所有的数能否被Bj整除并将 能被整除的数从A 中剔除;-3.1/*输出A 中所有没有被剔除的数*/for(i=2;i=100;i+)若Ai没有被剔除,则输出之-4.1main()/*建立2到100的数组A,其中17 对框架中的局部再做细化,得到整个程序。()/*建立2到100的数组A,其中Aii*/for(i=2;i=100;i+)Ai=i;/*建立2到10的素数表B,其中存放2到10以内的素数*/B1=2;B2=3;B3=5;B4=7;/*若Aii是B 中任一数的倍数,则剔除Ai*/for(j=1;j=4;j+)/*检查A 所有的数能否被Bj整除并将能被整除的数从A 中剔除*/for(i=2;i=100;i+)if(AiBj*Bj=Ai)Ai=0;/*输出A 中所有没有被剔除的数*/for(i=2;i XJ(a)(b)(b)(a)3 3、连接各图,构成完整的连接各图,构成完整的PADPAD图图h:=1,n-1例1:对数组X进行排序。“自顶而下,逐步求精”J:=hk:45 判定表用于表示程序的判定表用于表示程序的静态逻辑静态逻辑 在判定表中的条件部分给出所有的在判定表中的条件部分给出所有的两两分支判断分支判断的列表,动作部分给出的列表,动作部分给出相应的相应的处理处理 要求将程序流程图中的多分支判断都要求将程序流程图中的多分支判断都改成两分支判断改成两分支判断判定表判定表判定表用于表示程序的静态逻辑判定表46我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物 判定表是一种二维的表格,常用于较复杂的组合条件判定表是一种二维的表格,常用于较复杂的组合条件(与结构化语言比较)。(与结构化语言比较)。条件框条件框 条件条目条件条目 操作框操作框 操作条目操作条目特点:可处理较复杂的组合条件,但不易理解特点:可处理较复杂的组合条件,但不易理解.不易输入计不易输入计算机。算机。通常由四部分组成。通常由四部分组成。条件框条件框条件定义。条件定义。操作框操作框操作的定义。操作的定义。条件条目条件条目 各条件的取值及组合。各条件的取值及组合。操作条目操作条目 在各条件取值组合下所执行的操作。在各条件取值组合下所执行的操作。例如例如:对商店每天的营业额所收税率对商店每天的营业额所收税率营业额营业额X()1000X50005000X 10001000元元 Y Y Y Y N Y Y N 信誉好信誉好 Y N N -Y N N -20 20 年年 -Y N -Y N -优优 惠惠 X X X X 正正 常常 X X X X 化化简简后后 1 2 3 4 5 6 7 81 2 3 4 5 6 7 8 10001000元元 Y Y Y Y Y N N N N Y Y Y N N N N 信誉好信誉好 Y Y N N Y Y N NY Y N N Y Y N N 20 20 年年 Y N Y N Y N Y NY N Y N Y N Y N优优 惠惠 X X XX X X正正 常常 X X X X XX X X X XY-Y-满足条件满足条件 N N-不满足条件不满足条件 X-X-选中判定的结论选中判定的结论判定表判定表判定表判定表应用举例应用举例应用举例应用举例例:一图书销售系统,其中一加工为“优惠处理”,条件是:顾客的49我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物无多分支判断结构无多分支判断结构50我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物软件工程ppt-05详细设计课件51我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物特点特点:描述一般组合条件较清晰,易理解。不易输入描述一般组合条件较清晰,易理解。不易输入计算机。计算机。营业额营业额 10001000元元 1000 1000元元 正常处理正常处理好的支付信誉好的支付信誉 优惠处理优惠处理坏的支付信誉坏的支付信誉 20 20年年 优惠处理优惠处理 20 20年年 正常处理正常处理如上例如上例判定树特点:描述一般组合条件较清晰,易理解。不易输入计算机。营业额52 PDLPDL是一种用于描述功能模块的是一种用于描述功能模块的算法算法设计设计和和加工细节加工细节的语言。称为设计程序的语言。称为设计程序用语言。它是一种伪码。用语言。它是一种伪码。伪码的语法规则分为伪码的语法规则分为“外语法外语法”和和“内语法内语法”。PDL PDL具有严格的具有严格的关键字外语法关键字外语法,用于,用于定义控制结构和数据结构,同时它的定义控制结构和数据结构,同时它的表表示实际操作和条件的内语法示实际操作和条件的内语法又是灵活自又是灵活自由的,可使用自然语言的词汇。由的,可使用自然语言的词汇。PDL(ProgramDesignLanguage)PDL是一种用于描述功能模块的算法设计和加工细节的语言。53我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物PDLPDL语言的成分是:数据说明、处理过程描语言的成分是:数据说明、处理过程描述、输入述、输入/输出输出 PDLPDL的语法是开放式的,其外层语法是的语法是开放式的,其外层语法是确定的,而内层语法则不确定。外层语确定的,而内层语法则不确定。外层语法描述控制结构它用类似于一般程序设法描述控制结构它用类似于一般程序设计语言控制结构的关键字:计语言控制结构的关键字:如如 :IF-THEN-ELSE,WHILE-DO IF-THEN-ELSE,WHILE-DO REPEAT-UNTIL,DO CASE,DO WHILE REPEAT-UNTIL,DO CASE,DO WHILE 等等表示。表示。有时还用关键字反排,表示控制结构结有时还用关键字反排,表示控制结构结束:束:DO-OD IF-FIDO-OD IF-FIPDL语言的成分是:数据说明、处理过程描述、输入/输出54我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物例如:55 提供全部结构化控制结构、数据说明提供全部结构化控制结构、数据说明和模块特征。能对和模块特征。能对PDLPDL正文进行结构分割,正文进行结构分割,使之变得易于理解。使之变得易于理解。为了区别关键字,规定关键字一律大为了区别关键字,规定关键字一律大写,其它单词一律小写。或者规定关键写,其它单词一律小写。或者规定关键字加下划线,或者规定它们为黑体字。字加下划线,或者规定它们为黑体字。PDLPDL的特点:的特点:提供全部结构化控制结构、数据说明和模块特征。能对PDL正56 内语法使用自然语言来描述处理特性。内语法使用自然语言来描述处理特性。内语法比较灵活,只要写清楚就可以,内语法比较灵活,只要写清楚就可以,不必考虑语法错,以利于人们可把主要不必考虑语法错,以利于人们可把主要精力放在描述算法的逻辑上。精力放在描述算法的逻辑上。有数据说明机制,包括简单的有数据说明机制,包括简单的(如标量如标量和数组和数组)与复杂的与复杂的(如链表和层次结构如链表和层次结构)的的数据结构。数据结构。有子程序定义与调用机制,用以表达有子程序定义与调用机制,用以表达各种方式的接口说明。各种方式的接口说明。PDLPDL的特点:的特点:内语法使用自然语言来描述处理特性。内语法比较灵活,只要写57我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物面向数据结构的设计面向数据结构的设计软件系统本质上都是信息处理系统。许多应用系软件系统本质上都是信息处理系统。许多应用系统中,信息往往具有清晰的层次结构,输入统中,信息往往具有清晰的层次结构,输入/输出数据输出数据有明显的对应关系。问题求解方法的构造往往依赖于有明显的对应关系。问题求解方法的构造往往依赖于问题描述的数据结构,即使求解同一问题,使用的数问题描述的数据结构,即使求解同一问题,使用的数据结构不同,相应的求解算法也不同。因此软件设计据结构不同,相应的求解算法也不同。因此软件设计与数据结构有极大的相关性。如果一个数据结构具有与数据结构有极大的相关性。如果一个数据结构具有选择性质,那么应该使用条件选择结构处理;如果一选择性质,那么应该使用条件选择结构处理;如果一个数据结构具有重复性,则一定要求使用循环控制结个数据结构具有重复性,则一定要求使用循环控制结构处理;如果一个数据结构具有层次组织,则软件控构处理;如果一个数据结构具有层次组织,则软件控制结构也要求是分层的。由此提出了一类面向数据结制结构也要求是分层的。由此提出了一类面向数据结构的设计方法。构的设计方法。Jackson方法是面向数据结构的设计方法是面向数据结构的设计方法的代表之一。方法的代表之一。面向数据结构的设计软件系统本质上都58我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物1.概念概念Jachson方法是面向方法是面向数据结构数据结构的设计方的设计方法。法。2.JSP用于开发规模较小的数据处理系统的用于开发规模较小的数据处理系统的设计。该方法定义了一组以数据结构为设计。该方法定义了一组以数据结构为指导的映射过程,它根据输入、输出的指导的映射过程,它根据输入、输出的数据结构,按一定的规则映射成软件的数据结构,按一定的规则映射成软件的过程描述,即程序结构,而不是软件的过程描述,即程序结构,而不是软件的体系结构。体系结构。Jackson方法方法1.概念Jackson方法59我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物3.特点特点Jackson方法有自己的描述工具方法有自己的描述工具Jackson结构图,用结构图,用3种基本结构(顺序、选种基本结构(顺序、选择和重复)来表示。其特点是:择和重复)来表示。其特点是:能对结构进行自顶向下的分解,因此可以表能对结构进行自顶向下的分解,因此可以表示层次结构。示层次结构。结构易读,形象直观。结构易读,形象直观。既能表示数据结构也能表示程序结构,且表既能表示数据结构也能表示程序结构,且表示的是组成关系。示的是组成关系。Jackson方法方法3.特点Jackson方法60我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物4.JSP设计步骤设计步骤 分析并确定输入数据和输出数据的逻辑结构,分析并确定输入数据和输出数据的逻辑结构,并用并用Jackson结构图表示这些数据结构。结构图表示这些数据结构。找出输入数据结构和输出结构中有对应关系找出输入数据结构和输出结构中有对应关系的数据单元,对应关系指数据单元在数据内容的数据单元,对应关系指数据单元在数据内容上、数量上和顺序上有直接的因果关系。上、数量上和顺序上有直接的因果关系。按一定的规则由输入、输出的数据结构导出按一定的规则由输入、输出的数据结构导出程序结构。程序结构。列出基本操作与条件,并把它们分配到程序列出基本操作与条件,并把它们分配到程序结构图的适当位置。结构图的适当位置。用伪码(也称图解逻辑)写出程序。用伪码(也称图解逻辑)写出程序。Jackson方法方法4.JSP设计步骤Jackson方法61我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物5、优缺点、优缺点Jackson方法对问题分析的基本思想仍然方法对问题分析的基本思想仍然是自顶而下,逐步求精,问题求解层次化和模是自顶而下,逐步求精,问题求解层次化和模块化。它与块化。它与SD方法的区别仅仅在于主要以方法的区别仅仅在于主要以数数据结构据结构(而不是数据流驱动)来建立程序模块(而不是数据流驱动)来建立程序模块和控制结构。和控制结构。对于数据结构与问题结构密切相关的系统,对于数据结构与问题结构密切相关的系统,该方法导出的系统设计易于理解,当问题发生该方法导出的系统设计易于理解,当问题发生局部变化时,也易于修改。特别适用于具有良局部变化时,也易于修改。特别适用于具有良好层次数据结构的输入好层次数据结构的输入/输出设计,典型的如商输出设计,典型的如商业应用中文件表格处理。业应用中文件表格处理。Jackson方法方法5、优缺点Jackson方法62我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物6.JSP设计中结构冲突的解决方法设计中结构冲突的解决方法在在JSP设计中,如果输入数据和输出数据设计中,如果输入数据和输出数据结构之间找不到对应关系,称为结构冲突。在结构之间找不到对应关系,称为结构冲突。在工程实践中,实施工程实践中,实施JacksonJackson方法的主要问题是方法的主要问题是结构冲突。结构冲突。解决方法是:解决方法是:引入中间数据结构或中间文件,引入中间数据结构或中间文件,将冲突部分分隔开来,建立多个程序结构,再将冲突部分分隔开来,建立多个程序结构,再利用中间文件将把它们联系起来,构成一个系利用中间文件将把它们联系起来,构成一个系统的整体。统的整体。Jackson方法方法6.JSP设计中结构冲突的解决方法Jackson方法63我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物程序复杂度的定量度量程序复杂度的定量度量如如何何使使软软件件结结构构复复杂杂度度和和软软件件质质量量的的评评价价能能够够量量化化是是软软件件工工程程研研究究的的课课题题之之一一。软软件件复复杂杂度度、软软件件质质量量的的量量化化评评判判,是是客客观观评评估估软软件件质质量量,计计算算开开发发进进度度,衡量软件成本的基础,也是估计软件残存错误的依据。衡量软件成本的基础,也是估计软件残存错误的依据。目前比较流行的软件复杂度度量方法有两种:一是目前比较流行的软件复杂度度量方法有两种:一是由由McCabe提出的根据提出的根据程序流程图的结构复杂度程序流程图的结构复杂度对软对软件复杂度和质量进行量度;二是由件复杂度和质量进行量度;二是由Halstead提出的根提出的根据程序中包含的据程序中包含的运算操作符和操作数个数运算操作符和操作数个数对程序复杂对程序复杂度进行度量的行代码度量方法。度进行度量的行代码度量方法。程序复杂度的定量度量如何使软件结构复杂度64我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物l程序复杂性主要指模块内程序的复杂性。它直接关联到软件开发费用的多少,开发周期的长短和软件内部潜伏错误的多少。l减少程序复杂性,可提高软件的简单性和可理解性,并使软件开发费用减少,开发周期缩短,软件内部潜藏错误减少。程序复杂度的定量度量程序复杂度的定量度量程序复杂性主要指模块内程序的复杂性。它直接关联到软件开发费用65我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物复杂性度量需要满足的假设复杂性度量需要满足的假设l为了度量程序复杂性,要求:它可以用来计算任何一个程序的复杂性;对于不合理的程序,例如对于长度动态增长的程序,或者对于原则上无法排错的程序,不应当使用它进行复杂性计算;如果程序中指令条数、附加存储量、计算时间增多,不会减少程序的复杂性。复杂性度量需要满足的假设为了度量程序复杂性,要求:66我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物代码行度量法代码行度量法l源代码行数度量法基于两个前提:程序复杂性随着程序规模的增加不均衡地增长;控制程序规模的方法最好是采用分而治之的办法。将一个大程序分解成若干个简单的可理解的程序段。代码行度量法源代码行数度量法基于两个前提:67我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物l方法的基本考虑是统计一个程序模块的源代码行数目,并以源代码行数做为程序复杂性的度量。l设每行代码的出错率为每100行源程序中可能有的错误数目。lThayer曾指出,程序出错率的估算范围是从0.047之间,即每100行源程序中可能存在0.047个错误。他还指出,每行代码的出错率与源程序行数之间不存在简单的线性关系。方法的基本考虑是统计一个程序模块的源代码行数目,并以源代码行68我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物lLipow指出,对于小程序,每行代码出错率为1.31.8;对于大程序,每行代码的出错率增加到2.73.2之间,这只是考虑了程序的可执行部分,没有包括程序中的说明部分。lLipow及其他研究者得出一个结论:对于少于100个语句的小程序,源代码行数与出错率是线性相关的。随着程序的增大,出错率以非线性方式增长。Lipow指出,对于小程序,每行代码出错率为1.31.869我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物McCabe度量法lMcCabe度量法,又称环路复杂性度量,是一种基于程序控制流的复杂性度量方法。l它基于一个程序模块的程序图中环路的个数,因此计算它先要画出程序图。l程序图是退化的程序流程图。流程图中每个处理都退化成一个结点,流线变成连接不同结点的有向弧。McCabe度量法McCabe度量法,又称环路复杂性度量,是70我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物基本控制结构的结点化处理基本控制结构的结点化处理ABABC分支分支AB顺序顺序当循环当循环AB直到循环直到循环图图7 7 基本控制结构的结点化处理基本控制结构的结点化处理基本控制结构的结点化处理ABABC分支AB顺序当循环AB直到71我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物l程序图仅描述程序内部的控制流程,完全不表现对数据的具体操作,以及分支和循环的具体条件。l计算环路复杂性的方法:根据图论,在一个强连通的有向图G中,环的个数由以下公式给出:V(G)mnp其中,V(G)是有向图G中环路个数,m是图G中弧数,n是图G中结点数,p是图G中的强连通分量个数。程序图仅描述程序内部的控制流程,完全不表现对数据的具体操作,72我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物lMyers建议,对于复合判定,例如,(A0)(CD)(XA)算做三个判定。l为使图成为强连通图,从图的入口点到出口点加一条用虚线表示的有向边,使图成为强连通图。这样就可以使用上式计算环路复杂性。l在例示中,结点数n11,弧数m13,p1,则有V(G)mnp131113.l等于程序图中弧所封闭的区域数。Myers建议,对于复合判定,例如,(A0)(CD)73我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物软件工程ppt-05详细设计课件74我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物几点说明几点说明l环路复杂度取决于程序控制结构的复杂度。当程序的分支数目或循环数目增加时其复杂度也增加。环路复杂度与程序中覆盖的路径条数有关。l环路复杂度是可加的。例如,模块A的复杂度为3,模块B的复杂度为4,则模块A与模块B的复杂度是7。几点说明环路复杂度取决于程序控制结构的复杂度。当程序的分支数75我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物lMcCabe建议,对于复杂度超过10的程序,应分成几个小程序,以减少程序中的错误。Walsh用实例证实了这个建议的正确性。在McCabe复杂度为10的附近,存在出错率的间断跃变。McCabe建议,对于复杂度超过10的程序,应分成几个小程序76我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物l这种度量的缺点是:对于不同种类的控制流的复杂性不能区分简单IF语句与循环语句的复杂性同等看待嵌套IF语句与简单CASE语句的复杂性是一样的模块间接口当成一个简单分支一样处理一个具有1000行的顺序程序与一行语句的复杂性相同这种度量的缺点是:77我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物Halstead的软件科学lHalstead软件科学研究确定计算机软件开发中的一些定量规律,它采用以下一组基本的度量值。l这些度量值通常在程序产生之后得出,或者在设计完成之后估算出。Halstead的软件科学Halstead软件科学研究确定计78我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物l程序长度(预测的Halstead长度)令n1表示程序中不同运算符(包括保留字)的个数,令n2表示程序中不同运算对象的个数,令H表示“程序长度”,则有 H=n1 log2n1+n2 log2n2l这里,H是程序长度的预测值,它不等于程序中语句个数。程序长度(预测的Halstead长度)令n1表示程序中不同79我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物l在定义中,运算符包括:算术运算符赋值符(=或:=)逻辑运算符分界符(,或;或:)关系运算符括号运算符子程序调用符数组操作符循环操作符等。l特别地,成对的运算符,例如“BEGINEND”、“FORTO”、“REPEATUNTIL”、“WHILEDO”、“IFTHENELSE”、“()”等都当做单一运算符。在定义中,运算符包括:80我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物l运算对象包括变量名和常数。l实际的Halstead长度设N1为程序中实际出现的运算符总个数,N2为程序中实际出现的运算对象总个数,N为实际的Halstead长度,则有N=N1+N2运算对象包括变量名和常数。81我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物l程序的词汇表Halstead定义程序的词汇表为不同的运算符种类数n1和不同的运算对象种类数n2的总和。若令n为程序的词汇表,则有n=n1+n2程序的词汇表Halstead定义程序的词汇表为不同的运算符82我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物l程序量程序量V 可用下式得到V=N log2n它表明了程序在词汇上的复杂性。其最小值为 V*=(2+n2*)log2(2+n2*)V这里,2表明程序中至少有两个运算符:赋值符=和函数调用符 f(),n2*表示输入输出变量个数。程序量83我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物l程序量比率(语言的抽象级别)L=V*/V或L=(2/n1)(n2/N2)它表明了一个程序的最紧凑形式的程序量与实际程序量之比,反映了程序的效率。其倒数D=1/L表明了实现算法的困难程度。程序量比率(语言84我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物l程序员工作量程序员工作量E=V/Ll程序的潜在错误程序的潜在错误Halstead度量可以用来预测程序中的错误。预测公式为B=(N1+N2)log2(n1+n2)/3000B为该程序的错误数。它表明程序中可能存在的差错B 应与程序量V成正比。程序员工作量E=V/L85我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物l例如,一个程序对75个数据库项共访问1300次,对150个运算符共使用了1200次,那么预测该程序的错误数:B=(1200+1300)log2(75+150)/3000 6.5即预测该程序中可能包含67个错误例如,一个程序对75个数据库项共访问1300次,对150个运86我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物lHalstead的重要结论的重要结论l程序的实际Halstead长度N可以由词汇表n算出。即使程序还未编制完成,也能预先算出程序的实际Halstead长度N,虽然它没有明确指出程序中到底有多少个语句。这个结论非常有用。经过多次验证,预测的Halstead长度与实际的Halstead长度是非常接近的。Halstead的重要结论87我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物Halstead度量的缺点度量的缺点l没有区别自己编的程序与别人编的程序。这是与实际经验相违背的。这时应将外部调用乘上一个大于1的的常数Kf(应在15之间,它与文档资料的清晰度有关)。l没有考虑非执行语句。补救办法:在统计n1、n2、N1、N2时,可以把非执行语句中出现的运算对象,运算符统计在内。Halstead度量的缺点没有区别自己编的程序与别人编的程序88我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物l没有注意调用的深度。Halstead 公式应当对调用子程序的不同深度区别对待。在计算嵌套调用的运算符和运算对象时,应乘上一个调用深度因子。这样可以增大嵌套调用时的错误预测率。l没有把不同类型的运算对象,运算符与不同的错误发生率联系起来,而是把它们同等看待。例如,对简单IF语句与WHILE语句就没有区别。没有注意调用的深度。Halstead公式应当对调用子程序的89我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物l忽视了嵌套结构(嵌套的循环语句、嵌套IF语句、括号结构等)。一般地,运算符的嵌套序列,总比具有相同数量的运算符和运算对象的非嵌套序列要复杂得多。解决的办法是对嵌套结果乘上一个嵌套因子。忽视了嵌套结构(嵌套的循环语句、嵌套IF语句、括号结构等)。90软件设计复审软件设计复审复审对象复审对象软件设计说明文档意意义义通过设计复审,可以及时发现软件结构缺陷和设计错误,使得它们能够在进入编码前得以改正。种类种类正式复审和临时复审复审的内容复审的内容软件设计复审复审对象软件设计说明文档911、正式复审、正式复审在在全全部部设设计计文文档档制制作作完完毕毕后后召召开开正正式式的的软软件件设设计计复复审审确确认认会会议议。在在复复审审会会议议上上由由设设计计人人员员对对软软件件总总体体结结构构、性性能能规规范范、用用户户界界面面、关关键键模模块块和和关关键键算算法法等等进进行行详详细细报报告告。由由独独立立的的评评审审专专家家小小组组对对设设计计文文档档和和设设计计人人员员的的报报告告进进行行全全面面深深入的讨论审查。入的讨论审查。正式复审的结果正式复审的结果(1)确认通过软件设计(软件开发可进入下一阶段)确认通过软件设计(软件开发可进入下一阶段)(2)设设计计文文档档未未获获通通过过。(通通常常是是软软件件设设计计存存在在重重大大缺缺陷陷或或者者错错误误,也也可可以以是是设设计计没没有有原原则则性性错错误误,但但是是设设计计文文档档本本身身不规范,不能作为后续编码的依据。)不规范,不能作为后续编码的依据。)软件设计即使是通过复审通常也不是完全正确的,复审报软件设计即使是通过复审通常也不是完全正确的,复审报告中应该说明设计中仍然存在的问题或者缺陷,使得这些问告中应该说明设计中仍然存在的问题或者缺陷,使得这些问题在后续编码中得以改正或者完善。题在后续编码中得以改正或者完善。1、正式复审在全部设计文档制作完毕后召开正式922、临时复审、临时复审是是在在软软件件设设计计过过程程中中,针针对对某某个个局局部部或或者者问问题题的的解解决决方方案案或或者者阶阶段段性性设设计计成成果进行讨论或者审核。果进行讨论或者审核。2、临时复审933、软件复审的内容、软件复审的内容(1)设设计计功功能能和和性性能能的的可可追追踪踪性性:软软件件结结构构设设计计是是否否充充分分实实现现了了软软件件需需求求规规格格说说明明?目目标标软软件件设设计计中中实实现现的的每每个个功功能能、性性能能在在需需求求说说明明中中是是否否能能够够找找到到来来源源?(2)软软件件设设计计中中采采用用的的技技术术是是否否成成熟熟?如如果果是是新新技技术,其技术风险系数多大,是否存在替代实现方案?术,其技术风险系数多大,是否存在替代实现方案?(3)软软件件系系统统的的所所有有外外部部接接口口和和内内部部各各模模块块接接口口定定义是否恰当、完整?义是否恰当、完整?(4)设设计计中中对对于于系系统统的的可可维维护护性性是是如如何何体体现现的的?设设计文档本身的可理解性如何?它们易于编码实现吗?计文档本身的可理解性如何?它们易于编码实现吗?(5)在在软软件件系系统统结结构构、关关键键算算法法和和用用户户界界面面中中如如何何保证系统质量?保证系统质量?3、软件复审的内容(1)设计功能和性能的可追踪性:软件结构94我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物软件软件规格说明书规格说明书软件设计阶段完成,应提交设计文档:软件设计阶段完成,应提交设计文档:1、改进后的模块结构图(包含模块说明)改进后的模块结构图(包含模块说明)2、各模块的详细说明、各模块的详细说明(流程图、(流程图、N-S图、图、PAD图等)图等)软件规格说明书95我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物 1 1、用户特性分析、用户特性分析 用户模型用户模型 了解所有用户的技能和经验,针对用户能力设计或更改了解所有用户的技能和经验,针对用户能力设计或更改界面。从以下方面分析:界面。从以下方面分析:用户类型用户类型通常分为:外行型、初学型、熟练型、专家型。通常分为:外行型、初学型、熟练型、专家型。用户特性度量用户特性度量与用户使用模式和用户群体能力有关。与用户使用模式和用户群体能力有关。包括:用户使用频度、用户用机能力、用户的知识、思维包括:用户使用频度、用户用机能力、用户的知识、思维能力等。能力等。用户界面设计的任务这部分工作应该与软件需求分析同步进行。包括以下内容:这部分工作应该与软件需求分析同步进行。包括以下内容:2 2、用户界面的任务分析、用户界面的任务分析 任务模型(任务模型(DFDDFD图)图)是对系统内部活动的分解,不仅要进行功能分解(用是对系统内部活动的分解,不仅要进行功能分解(用DFDDFD图图描述),还要包括与人相关的活动。每个加工即一个功能或描述),还要包括与人相关的活动。每个加工即一个功能或任务。任务。3 3、确定用户界面类型、确定用户界面类型1、用户特性分析用户模型用户界面设计的任务这部分工96我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物界面的设计原则分析用户类型分析用户类型应用程序和界面分离应用程序和界面分离一致性一致性尽量减少用户工作尽量减少用户工作提供反馈提供反馈出错处理和帮助功能出错处理和帮助功能增加可视化图形表示增加可视化图形表示界面的设计原则分析用户类型97我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物1 1 黄金规则在有关界面设计的著作中,在有关界面设计的著作中,TheoMandel创造了创造了三条三条黄金原则黄金原则:l置用户于控制之下置用户于控制之下l减少用户的记忆负担减少用户的记忆负担l保持界面一致保持界面一致1黄金规则在有关界面设计的著作中,98我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物黄金规则:置用户于控制之下Mandel定义的一组允许用户操作控制的原则定义的一组允许用户操作控制的原则:以不强迫用户进入不必要的或不希望的动作的方式来以不强迫用户进入不必要的或不希望的动作的方式来定义交互方式定义交互方式提供灵活的交互提供灵活的交互允许用户交互可以被中断和撤消允许用户交互可以被中断和撤消当技能级别增加时可以使交互流水化并允许定制交互当技能级别增加时可以使交互流水化并允许定制交互使用户隔离内部技术细节使用户隔离内部技术细节设计应允许用户和出现在屏幕上的对象直接交互设计应允许用户和出现在屏幕上的对象直接交互黄金规则:置用户于控制之下Mandel定义的一组允许用户操99我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物黄金规则:减少用户的记忆负担Mandel定义了一组设计原则,使界面能够减定义了一组设计原则,使界面能够减少用户记忆负担少用户记忆负担:减少对短期记忆的要求减少对短期记忆的要求建立有意义的缺省建立有意义的缺省定义直觉性的捷径定义直觉性的捷径界面的视觉布局应该基于真实世界的隐喻界面的视觉布局应该基于真实世界的隐喻以不断进展的方式揭示信息以不断进展的方式揭示信息黄金规则:减少用户的记忆负担Mandel定义了一组设计原则100我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物软件工程ppt-05详细设计课件101我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物黄金规则:保持界面一致用户应以一致的方式展示和获取信息用户应以一致的方式展示和获取信息所有可视信息的组织均按照均按照贯穿所有屏幕显示所保持的设所有可视信息的组织均按照均按照贯穿所有屏幕显示所保持的设计标准计标准输入机制被约束到有限的集合,在整个应用中被一致地使用输入机制被约束到有限的集合,在整个应用中被一致地使用从任务到任务的导航机制被一致地定义和实现从任务到任务的导航机制被一致地定义和实现Mandel定义了一组帮助保持界面一致性的设计原则定义了一组帮助保持界面一致性的设计原则允许用户将允许用户将当前任务当前任务放入有意义的语境放入有意义的语境在应用系列内保持一致性在应用系列内保持一致性如过去的交互模型已建立起了用户期望,除非有迫不得已的理由,如过去的交互模型已建立起了用户期望,除非有迫不得已的理由,不要改变它不要改变它黄金规则:保持界面一致用户应以一致的方式展示和获102我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物2 2 用户友好性设计 用户友好性用户友好性一般属软件的性能特一般属软件的性能特性,它独立于所有具体功能,却影响性,它独立于所有具体功能,却影响着所有功能的重用性。着所有功能的重用性。用户友好性用户友好性应体现在与用户有接口应体现在与用户有接口的软件特性上。的软件特性上。用户友好性的根本用户友好性的根本目的目的是为了是为了软件可重用性、可维护性。软件可重用性、可维护性。2用户友好性设计用户友好性一般属软件的性能特性,103我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物用户友好性的标志可操作性可操作性健壮性健壮性易学习性易学习性可扩展性可扩展性 用户友好性
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 教学培训


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!