1、1,第四章 总体设计(System Design),2,概述,在完成了软件的需求分析之后,就进入开发阶段。这一阶段又包括设计、实现(编码)和测试三个步骤。软件设计是将需求分析所得出的软件“要做什么”变换为“怎么做”,即要着手软件需求的实现,并通过“软件设计说明书”反映设计的结果。 从工程管理的角度来看,软件设计可分为总体设计和详细设计两个步骤。总体设计是将软件需求转化为数据结构和软件的系统结构。详细设计即为过程设计,就是把解法具体化。,3,总体设计又称概要设计或初步设计。总体设计的目标是回答“概括地说,系统应如何实现?”这一问题。P64 总体设计的任务有两个: 1、概要给出系统的实现方法,划分
2、出组成系统的物理元素。如:程序、文件、数据库、文档等。 2、确定系统的软件结构。即组成系统的各个模块及模块间的关系。,4,1. 总体设计的过程 总体设计通常有两个主要阶段:系统设计阶段(体系结构设计)和结构设计(模块设计)阶段,就数据库方面而言还要设计数据结构。设计步骤:1.制定规范设计之初,为软件开发团队制定设计时需共同遵守的规范,以便协调与规范团队合作。规范应包括以下几个方面:管理规则:操作流程、交流方式、工作纪律等文档编制标准:文档体系、文档格式、图标格式等信息编码形式,硬件、操作系统的接口规约,命名规则等设计目标、设计原则,5,2、体系结构设计3、软件结构设计-确定最佳方案: 从DFD
3、出发进行任务分解,不同的划分方法即对应不同的方案。每个合理的方案应配备下列4份资料:系统流程图组成系统的物理元素清单成本/效益分析进度计划 选择最佳方案并制定详细的实现计划,6,4、软件结构设计 采用模块化思想进行功能分解,抽象出系统体系结构: 将DFD细化,至每个子功能都明白易懂,能体现出软件结构;每个模块完成一个子功能。 主要工具有 层次图及HIPO图等。5、数据库设计,界面设计,安全设计,故障处理设计,可维护设计6、测试计划 7、书写文档,7,在完成了需求分析之后,紧接着进行的是系统的总体设计。总体设计又称为概要设计或初步设计,主要目的是通过本阶段的工作,确定系统的实现方案,完成软件结构
4、设计,划分出构成系统的功能模块、数据及设计出数据库结构、用户界面和文档等。体系结构是软件系统的基本框架,是系统根本性的东西。就像不同类别的建筑物有不同的建筑风格一样,类别不同的软件系统的体系结构也是不同的。通常在软件系统的设计过程中,要求体系结构应相对稳定,一旦确定就要尽量避免对其加以改动。一个良好的体系结构对各种不同的个体需求是普遍适用的,也是高效和稳定的。,2.体系结构设计,8,一、集中式结构最传统的系统架构,由一台计算机主机和多个终端设备构成。见P68页图5-2主机用以存放所有的软件资源,并完成所有计算任务。用户只能通过与主机相连的外部基本无智能的终端设备实现与系统的通信。优点:稳定性高
5、,保密性高缺点:不便于扩充,9,二、客户机/服务器结构C/S结构是一种分布与集中相结合的结构,系统依靠网络被分布在多台不同的计算机上,但通过其中的服务器提供集中式服务。见P69页图5-3C/S结构是基于资源不对等,且为实现共享而提出来的。是以“请求响应”的方式来完成客户机和服务器之间的通讯的,也称为前台.后台结构,即由前台的客户机接收信息,并经相应处理后向后台的服务器发出请求。后台的服务器对“请求”进行处理,将处理的结果以“响应”的方式返回给前台的客户机。注:客户端和服务器端可以位于不同的计算机上,也可安装在同一台计算机中。C/S结构的软件系统一般是基于局域网的,软件应至少包含客户端和服务器端
6、两部分,进行系统的维护和升级时,工作量较大。优点:结构灵活,方便扩充,10,三、多层客户机/服务器结构两层结构三层结构B/S结构(见P71页图5-7)B/S结构是基于WEB技术与客户机/服务器结构的结合而提出来的一种多层结构,其中B是指WEB浏览器,S是指应用服务器与数据服务器。目前该结构被广泛的应用与网络商务系统中。B/S结构是基于浏览器.服务器模式的,因此不局限于局域网,且进行系统的维护和升级时一般只要完成服务器端的相关工作即可,工作量相对较小。,11,1.层次结构 层次结构是在系统功能分解的基础上提出的,即将一个大的任务分解成若干小的任务分层次来完成。常见的层次结构有树状层次结构和相邻关
7、系的层次结构。 (1)树状层次结构 在这种层次结构中,下层是为上层提供服务,上层负责调用下层的功能来完成有关任务,一个高层可对应多个低层,同时多个高层也可对应同一个低层。,12,如下图所示,将学生信息管理系统分成三个层次,最高层次为总控模块,下面一层为子模块,最下一层为孙模块,低层次模块总是为高层次模块服务的,高层次模块负责调用低层次模块的功能,这种服务与被服务的关系是不能颠倒的。,13,(2)相邻关系的层次结构 相邻关系的层次结构要求通讯严格地限制在相邻两层之间,下层是为上层提供服务的,上层负责调用下层的功能来完成有关任务,此种结构的典型代表是ISO.OSI网络参考模型,如右图所示。网络协议
8、层次结构中,相邻两层相互通讯,相邻的下层为上层提供服务支持,但下层的功能实现对于上层来说是不可见的。,ISO.OSI网络参考模型,14,2.客户机服务器结构 客户机服务器结构,即C/S结构。是基于资源不对等,且为实现共享而提出来的。是以“请求响应”的方式来完成客户机和服务器之间的通讯的,也称为前台.后台结构,即由前台的客户机接收信息,并经相应处理后向后台的服务器发出请求。后台的服务器对“请求”进行处理,将处理的结果以“响应”的方式返回给前台的客户机。 客户机.服务器结构可以是简单的两层结构,也可以是多层结构,如下图所示。,15,图:客户机服务器结构,如果是两层结构,软件系统一般是基于局域网的,
9、软件应至少包含客户端和服务器端两部分,进行系统的维护和升级时,工作量较大。如果是多层结构,软件系统一般是基于浏览器.服务器模式(B/S)的,因此不局限于局域网,且进行系统的维护和升级时一般只要完成服务器端的相关工作即可,工作量相对较小。,16,3.软件结构设计,一、模块化原理软件设计中一般应遵循以下原则:分解(模块化)、抽象、局部化与信息隐蔽、一致性、完整性和可验证性。模块是数据说明、可执行语句等程序对象的集合。模块化设计的基本原理是指把大型软件按规定的原则划分为一个个较小的相对独立又相关的模块,每个模块完成一个子功能,把这些模块集成起来组成一个整体,以完成指定的功能。模块化设计的指导思想包括
10、以下几点:,17,1、分解(模块化): 分解是将一个复杂的问题分解为几个较简单的问题,这样可降低复杂度,减少解题的工作量。 设C(x)表示问题x的复杂度,E(x)表示解决问题x所需的工作量,若P1、P2表示两个问题,则: 若C(P1)C(P2), 则E(P1)E(P2) 由经验得C(P1+P2)C(P1)+C(P2) 由不等式 得到不等式 E(P1+P2)E(P1)+E(P2),18,一般地,分解会降低复杂度,减少工作量。但划分模块的数量越多,模块间联系就越多。虽然模块本身的工作量减少,但模块间接口的工作量却要增大,因此总工作量可能增大。所以,应将模块数控制在最小成本区,就可以使总工作量保持最
11、小。,19,2、抽象(Abstraction): 模块化的过程是自顶向下由抽象到具体的过程,软件结构顶层的模块控制系统的主要功能,软件结构底层的模块完成对数据的一个具体处理。用自顶向下的方法可以简化软件的设计和实现,使系统易于维护。例:绘图软件包CAD有一个模块为“外设配置”,这是个抽象化的名称,是对许多输入输出设备进行配置和管理的。输入设备有键盘、鼠标等,输出设备有绘图仪、打印机、显示器等。不同设备的驱动程序各不相同,因而进入“外设配置”这个模块后还应进一步具体指明配置是哪种设备,分别是哪种型号等,才能使系统正确工作。,20,3、信息隐蔽和局部化 信息隐蔽基本原理:在设计和确定模块时,应使一
12、个模块内所包含的信息(如过程和数据等)对于不需要这些信息的其他模块来说,是不可见或不能访问的。局部化是把一些关系密切具有特定联系的软件元素放在一起。 在设计和确定模块时,尽量设法将可变因素隐敞在一个或几个局部的模块中。具体做法是:先将可能发生变化的因素列出,然后在划分模块时将这些因素隐蔽在几个模块内,使其他模块与这些可变因素无关。这样可避免维护修改时错误的传递。所列出的因素的任何一个变化仅影响与其相关的模块,不会影响其他模块,提高了软件的可维护性。,21,4.一致性、完整性和可验证性一致性:在软件开发过程中制定统一的,标准的原则。如文件格式、工作流程、接口风格等。完整性:软件系统完全实现系统的
13、功能、性能。可验证性:在软件开发和维护过程中对每个阶段的进展情况进行测评,在软件系统运行过程中对每个功能进行验证等。 一致性、完整性和可验证性原则应体现在软件设计的整个过程中。进行软件设计之初,首先应该制订设计时大家应该共同遵守的标准,即设计规范。如各种文档的编写规范、设计过程规范和其他相关规范等。同时要建立相关管理机制,以实现对规范实施的监督和检查。通过对规范的严格执行来保证软件设计的一致性、完整性和可验证性得以实现。,22,二、软件结构设计(模块结构设计) 系统体系结构设计完成之后,各模块的功能和在系统中的位置宏观上已基本确定。模块设计的主要任务就是设计具有独立功能而且和其他模块间没有过多
14、的相互作用的模块,即要完成“模块独立”设计。模块独立是模块化、抽象、信息隐蔽和局部化概念的直接结果。具有独立模块的软件较容易开发,独立的模块较容易测试和维护。 好设计的关键:每个模块完成一个相对独立的子功能,并且与其它模块间的接口简单。 独立性的度量标准:耦合&内聚 耦合:衡量不同模块间相互依赖的紧密程度。内聚:衡量一个模块内部各元素彼此结合的紧密程度。,23,2.模块化原理, 耦合(Coupling)耦合是对一个软件结构内不同模块之间互连程度的度量.,目标:耦合性越弱越好(低耦合),24,例1:A访问C的内部数据或不通过正常入口而转入C的内部(goto C1)。,模块独立性由弱到强排列为(耦
15、合性由高到低): 内容耦合(Content Coupling): 一个模块可直接访问另一模块中的数据或可直接转到另一模块中去,而不通过正常的入口或一个模块有多个入口或者两个模块有部分代码重叠.,25,2.模块化原理,例2:一个模块有多个入口(功能),26, 公共耦合 :两个或多个模块通过一个公共数据环境(全局变量、共享通信区等)相互作用。,问题: 公共部分的改动将影响所有调用它的模块; 公共部分的数据存取无法控制,影响软件模块的可靠性和适应性; 复杂程度随耦合模块的个数增加而增加。,27,控制耦合:模块间传递的是用做控制信号的开关值或标志值。,接口单一,但仍然影响被控模块的内部逻辑。,标记耦合
16、 一个模块传送给另一个模块的参数是一个复合的数据结构。例如,包含几个数据单项的记录。,28,数据耦合(Data coupling): 一个模块传送给另一个模块的参数是一个单个的数据项或者单个数据项组成的数组(上级模块通过参数表与下级模块交换简单的变量,相当于高级语言中的值传递)。,原则: 尽量使用数据耦合,少用控制耦合,限制公共耦合的范围,完全不用内容耦合。耦合顺序排列详见p73,29,低内聚:偶然内聚(Coincidental cohesion):模块间的元素是互不相关的,组合在一起纯属偶然。例:几个模块都要执行“读A”的操作,为了避免重复书写而将这几个模块放在一个模块中。缺点:不易修改和维
17、护,可理解性差, 内聚 (Cohesion): 一个模块内各个元素(包括数据和处理)彼此结合的紧密程度,理想的模块只完成一项功能,模块设计的目标之一是尽可能高的内聚。,30,逻辑内聚:由若干逻辑功能相似的成分组成。例如: 对某数据库中的数据可以按各种条件进行查询,这些不同的查询条件所用的查询方式也不同,设计时不同条件的查询放在同一“查询”模块中。缺点:模块不易修改,浪费效率,时间内聚:将需要同时执行的成分放在同一模块中。例如:在财务软件中,“年终结算”就是在年终所作的一系列任务,如第四季度结算,年结算等放在一个模块中。缺点:复杂度增加,不易维护修改,31,中内聚:通信内聚:模块中各成分引用共同
18、的数据。 例如:模块中有四个部分,这四个部分使用同一数据文件产生不同的报表。,过程内聚:模块中各处理元素是相关的,而且这些处理必须以特定次序执行。如p74页图4.9,32,高内聚: 顺序内聚:某模块内某个成分的输出是另一个成分的输入。例如:,功能内聚:一个模块中所有元素都是完成某一功能所必须的处理,缺一不可,模块已不可再分。功能内聚是最高程度的内聚。例如:求一组数的最大值。,33,三、软件设计优化规则,2. 模块规模适中:过大的模块往往是由于分解不充分,不易理解;太小则接口开销过大。注意分解后不应降低模块的独立性。一般模块代码应在60行左右.3. 适当控制 软件结构的深度、宽度、扇入、扇出,在
19、软件设计过程中,有一些由经验获得的启发性规则,可帮助软件工程师改进和优化他们的软件设计,提高软件的质量。以下是几条启发性规则: 1. 争取低耦合、高内聚(增加内聚 减少耦合),34,深度 = 软件结构中分层的层数,能粗略地标志出系统的大小和复杂度。过大表示分工过细。例如,下图中软件的深度为4。,宽度 = 同一层上模块数的最大值。过大表示系统复杂度大。例如,上图中,软件的宽度为6。,35,扇出 = 一个模块直接调用控制的模块数。 3 fan-out 9,扇入 = 直接调用该模块的模块数在不破坏独立性的前提下,fan-in 大的比较好。,36,4、模块的作用范围(作用域)应在控制域内控制域:这个模
20、块本身及所有直接或 间接从属于它的模块的集合。,例如:M的控制域为 M,A,B,C,作用域:是受该模块内的一个判定所影响的所有模块。例如:当A中的判定只影响B模块,是满足上述规则的;当A中的判定影响C模块,则模块A的作用域不在它的控制范围内,这样的结构难于理解,还会造成控制耦合.,例中A的作用超出了控制域。改进方法之一,可以把A中的 if 移到M中;方法之二,可以把C移到A下面。,37,5、降低接口的复杂程度:是指模块接口传递信息简单,并和模块功能一致。复杂可能表明模块的独立性差。 例如,求一元二次方程根的模块:QUAD_ROOT(TBL,X) 中TBL和X分别是系数数组和根数组参数,就不如将
21、参数简化为: QUAD_ROOT(A,B,C,X1,X2)这样易于理解且不易发生传递错误。6、定义单入口和单出口模块,避免内容耦合,不要随便使用转向语句。7、模块功能可预测 相同输入必产生相同输出,这样的模块才是可预测的。 反例:模块中使用全局变量或静态变量,则可能导致不可预测。,38,4.总体设计的图形工具,总体设计的图形工具主要用来描述软件模块的层次结构,常用的有下面三种:1、Hierarchy(层次图,简称H图) 层次图用来描述软件的模块功能分解的层次。层次图的形式与描述数据结构的层次方框图是相同的。层次图中的每个矩形可以看成一个功能模块,矩形间的连线可以看作调用关系,而不象层次方框图那
22、样表示组成关系。例如:某学生成绩管理系统的层次图如下,其中只将编辑模块进一步分解,其他模块的分解省略了。,39,40,2、HIPO图 HIPO图实际是“层次图输入输出图”的英文缩写。H图是描述软件层次结构的层次图,但除顶层方框之外,其余的每个方框都要加上编号。和H图中每个方框想对应的都有一张IPO图,描述这个方框代表模块的处理过程,并在图中标明它所描绘的模块在H图中的编号。,41,注意: 这里的层次图表现软件的结构,而非数据结构; 每个矩形框代表一个模块,连线表示“调用”而非 “组成”; 所谓HIPO,即对每个模块附一张IPO图。每IPO图中应 明确标出对应模块的编号。,3、软件结构图(Str
23、uctured Chart,简称SC图) P81 软件结构图是另一种描绘软件结构的图形工具,也是一种有用的图形工具。方框内注明模块的名字或主要功能,箭头表示模块间的调用关系。符号的意义如下:,42,例:,注:此图一般不入文档,仅用于检查设计的正确性和模块独立性。,须检查: 每个传递的数据是否必须? 完成模块功能所必须的数据是否都传递了? 传输的数据是否只与单一的功能有关?是 否目的明确?,43,例:画出打印报告的软件结构图调用次序:上层调用下层;同层按照数据传递关系确定,一般从左到右执行;执行过程:按照数据流向.,44,5. 总体设计的主要方法面向数据流的设计方法(又称为SD:Structur
24、al Design),在总体设计中,主要采用面向数据流的设计方法。结构化设计(SD)是一种典型的面向数据流的软件总体设计方法。 结构化设计方法主要是根据系统分析过程中得到的数据流图的不同结构特征,映射出软件的初始结构图,再根据模块设计的基本原则和启发规则进行软件结构的优化。 数据流图中信息流的类型决定了映射的方法.信息流有变换流和事务流两类.因此数据流图也分为变换型数据流图和事务型数据流图. 基本思想: DFD 模块结构图,45,1、软件系统的结构特征 在需求阶段得到的数据流图所表示的系统结构特征,可归纳为两种典型的形式,即变换型和事务型。 变换型结构:信息沿输入通路进入系统,同时由外部形式变
25、换为内部形式,进入系统的信息通过变换中心,经过加工处理后再沿输出通路变换成外部形式离开软件系统,具有这些特征的数据流称为变换流.,事实上所有信息流都可归结为变换流,46,变换型结构由三个部件组成:有传入路径、变换中心和传出路径。流经这三个部分的数据流分别为传入流、变换流和传出流。,47, 事务型结构 当数据沿输入通路(接受路径)到达某一“处理”(事务中心)时,该“处理”根据输入数据的类型在若干个动作路径中选一个来执行,这类数据流称为事务流。 事务流是指引起、触发或启动某一动作或一串动作的数据流。当数据流从接收路径进入系统后,经过事务中心处理获得一个特定值,由此启动某一条路径的操作。,T = 事
26、务中心,当信息流具有明显的“发射中心”时,可归结为事务流。,48,事务型结构由至少一个接收路径、一个事务中心和若干动作路径组成。事务型结构具有明显的事务中心,各活动流以事务中心为起点呈辐射状流出.,49,2、面向数据流设计方法的主要步骤: 1)复审需求分析阶段所得到的DFD图,必要时再次进行修改和细化。 2)鉴别软件系统的结构特征是变换型和事务型。 3)根据软件系统的结构特征,按照从DFD图到软件结构图(SC图)的不同映射规则和步骤,映射为初始的SC图。,4)按优化规则优化所得到的初始结构图。,50,SD的总体设计过程:,51,3、分析设计 变换分析,例:汽车数字仪表板的设计,功能: 通过模
27、- 数转换实现传感器和微处理机接口; 在发光二极管面板上显示数据; 指示每小时英里数(mph),行驶的里程,每加仑油行驶的英里数(mpg)等等; 指示加速或减速; 如果车速超过55mph ,则发出警告铃声。,52,第一步:DFD的分界,先分出I、P、O三块,SPS:转数/秒Rpm:转数/分Gph:加仑/小时Mph:英里/小时Mpg:英里/加仑油,53,一般问题的一级分解方法:,54,第二步:映射,DFD,55,例:,56,第三步:修改 本着高内聚、低耦合的原则。例:精化后的数字仪表板系统的软件结构。,57,注:每个模块应附一简要说明描述 进出该模块的信息(接口描述); 模块内部的信息; 过程陈
28、述,包括主要判定点及任务等; 对约束和特殊特点的简短讨论。,58,例:对于在需求分析阶段得到的工资管理系统的详细数据流图可按下图划分边界。这样,整个系统可分为三个部分,人事数据和事务数据是传入流,即逻辑输入;工资、报表是传出流,即逻辑输出;中间的处理是变换中心,变换就是将逻辑输入变换为逻辑输出的过程。,第一步:DFD的分界,先分出I、P、O三块,59,D2,工资,财务处,人事处,D4,借款结算数据,人事数据,报表,工资单,60,第二步:完成一级分解。 画出初始软件结构图最上面两层顶层和一层。顶层一般用系统名字命名,一层一般包括传入、传出和变换三个模块。,第三步:完成二级分解。 逐步细化,为每一
29、个传入、传出和变换模块设计它们的下级模块。即将上一步分解得到的结构图继续分解,直至把每个处理都映射成一个适当的模块,称为二级分解。以下以变换模块为例,进行二级分解。,61,62,第四步:汇集成一张完整的软件结构图,工资管理系统,初始化,工资核算,输入人事数据,输入事务数据,取数据,写工资单,修改借扣款,取人事数据,取事务数据,取借款数据,计算应发工资,63,第五步:优化结构图,64, 事务分析 如果数据流图中具有明显的事务处理中心,就可以看作是事务型系统结构。其映射步骤是:1)在DFD图中确定事务中心、接收部分和发送部分,并在数据流图上标明分界线。事务中心通常位于DFD图中多条动作的起点,从这
30、里将引出事务中心控制的若干路径,即发送部分,而向事务中心提供启动信息的路径,即为接收部分。2)完成一级分解,画出软件结构图的顶层及一层。把DFD图的三个部分分别映射成事务控制模块、接收模块和动作发送模块。如下图。,65,66,例:图书管理系统。该系统执行时,先输入数据,根据此数据选择执行路径:购入图书进行登记、编目调用图书采编功能,借书、还书调用流通功能,查询调用查询功能,因而属于事务型系统。,67,3)分解和细化接收分支和发送分支。直至画出接收和发送模块的所有下层模块。4)按照优化规则优化初始结构图。一般说来,大部分软件系统都能够应用变换分析进行设计,而大多数数据处理系统属于事务型系统,用事
31、务变换进行设计更为适宜。对于大型的软件系统,常常是变换型和事务型结构的混合结构。在这种情况下,通常以变换分析为主,事务分析为辅的方式进行软件结构的设计。,68,XX学校财务处工资管理系统总体设计说明书 1、引言 本设计说明书是根据XX学校财务处对工资系统详细设计的基础,后续文档的编写和程序员书写程序的参考。2、任务概述2.1 目标 开发本系统的目的在于代替当前系统的手工计算,制表等工作,具体要求包括: (1)收集数据:收集职工水电费等。 (2)工资核算:计算应发工资和实发工资。 (3)打印报表:产生工资总表、工资分类表等。,教材P92页 附录258页,69,2.2 条件与限制 目前本项目开发的
32、所需软、硬件均已具备,没有其他的条件限制。2.3 运行环境 硬件:586微机一台,LQ-1600打印机一台。 软件:Win 95以上操作系统,FoxPro 5.0数据库系统。3 、 总体设计3.1 处理流程 用DFD图(要求明确划出IPO分界),或者用文字描述处理过程。3.2 总体结构和模块设计 层次图/HIPO图/软件结构图,见下图。,70,71,4、接口设计4.1 外部接口4.1.1 用户界面 (采用文字描述界面特点,拟采用何种软件开发等)4.1.2 软件接口 服务器程序,客户端采用何种软件开发,网络传输方式等。4.1.3 硬件接口 将使用那些输入、输出、网络等工具,如何实现这些工具和系统
33、的匹配连接使用。4.2 内部接口(模块间的接口) 描述主要模块功能及调用与被调用。,72,5 系统数据结构设计,5.1 数据库总体结构 (概念模型,采用文字语言描述数据库开发工具,数据库总体结构) 5.2 数据库表结构,73,6 、运行设计6.1运行模块的组合(用文字描述或者用图均可) 运行时,系统先启动主模块,显示系统主要功能,供用户选择调用。当用户选择了相应的功能后,由主模块调用相应功能模块,功能完成后返回主模块,用户可以选择其他功能模块。功能模块运行时,可能会调用更下层功能模块,情况与此类似。 当用户第一次使用时,应先调用系统维护功能模块下层的权限设置模块,设定使用权限和密码。6.2 运行控制(用文字描述) 系统运行哪个模块,由用户通过鼠标或 键进行选择,各模块中均有可返回调用它的上层模块。,74,7 、出错处理,8 、安全保密设计 系统要求一定的安全保密性,因此设有操作口令,对要求进入的用户必须输入用户名及口令,方可进入,并被赋予相应的使用权限,口令由系统初次使用时设置。9 、维护设计 系统本身带有系统维护功能模块,可进行数据库备份等。,75,思考题,模块化思想的原则独立性的度量标准:耦合&内聚软件设计优化规则 软件系统的结构特征:变换型和事务型变换分析和事务分析过程,