如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
(1)可行性研究与计划(2)需求分析(3)总体设计(4)详细设计(5)实现(6)集成测试(7)确认测试(8)使用和维护(根据国标《计算机软件开发规范》)软件设计--将分析模型转换为设计模型将设计模型金字塔倒立的后果是什么?软件设计是后续开发步骤及软件维护工作的基础。如果没有设计,只能建立一个不稳定的系统结构学习要求明确结构化设计的主要任务、设计步骤、具体方法;了解其他设计方法如Jackson方法的思想及特点具体掌握软件的概要设计及详细设计的基本思想和方法;重点掌握从数据流图导出初始结构图及如何对初始结构图进行改进的方法。6.1模块6.2概要设计的基本概念6.3结构化设计(SD方法)概要6.4块间联系和块内联系6.5设计技巧6.6从数据流图导出初始结构图6.1模块软件结构程序结构程序系统应由许多较小的单元组成(右图),这种单元可称为模块,即用一个名字可以调用的一段程序语句,也可以暂将它理解成类似“子程序”的概念。结构图反映程序中模块之间的层次调用关系和联系:它以特定的符号表示模块、模块间的调用关系和模块间信息的传递1模块:模块用矩形框表示,并用模块的名字标记它。结构图3模块间的信息传递:当一个模块调用另一个模块时,调用模块把数据或控制信息传送给被调用模块,以使被调用模块能够运行。而被调用模块在执行过程中又把它产生的数据或控制信息回送给调用模块。4在模块A的箭头尾部标以一个菱形符号,表示模块A有条件地调用另一个模块B。当一个在调用箭头尾部标以一个弧形符号,表示模块A反复调用模块C和模块D程序的系统结构图信息隐蔽由parnas方法提倡的信息隐蔽是指,每个模块的实现细节对于其它模块来说是隐蔽的。也就是说,模块中所包含的信息(包括数据和过程)不允许其它不需要这些信息的模块使用。一个模块具有输入和输出、功能、内部数据、程序代码等四个特性。输入和输出分别是模块需要的和产生的信息,功能是指模块所做的工作,输入输出和功能构成了一个模块的外貌,即模块的外部特性。模块用程序代码完成它的功能,内部数据是仅供该模块本身引用的数据,内部数据和程序代码是模块的内部特性。对模块的外部环境只需了解它的外部特性就足够了,其内部特性应该是不必了解的。“由外向里”是较合理的一种思考过程、所以应先确定模块的外部特性,再确定其内部特性6.2概要设计的基本概念概要设计(又称总体设计)的基本任务:·将系统划分成模块·决定每个模块的功能·决定模块的调用关系·决定模块的界面,即模块间传递的数据概要设计的主要工作:完成模块分解,确定系统的模块层次结构。概要设计需交付的文档:▼数据结构的描述部分;▼模块说明部分,它包括模块结构图及每个模块的功能说明。模块结构图(前图)描述了系统的模块组成以及模块间的调用关系,每个模块的功能说明则需描述模块的输入输出及其功能(即“做什么”,不是“怎么做”)。6.3结构化设计(SD方法)概要SD方法的目标:建立结构良好的程序系统。评价设计质量的两个标准:块间联系和块内联系。SD遵循的原则:自顶向下,逐步细化模块化抽象化信息隐蔽6.3.1相对独立单一功能的模块结构6.3.2块间联系和块内联系块间联系:指模块之间的联系,它是对模块独立性的直接衡量,块间联系越小就意味着模块的独立性越高,所以这是一个最基本的标准。块内联系:指一个模块内部各成分(语句或语句段)之间的联系,块内联系大了,则模块的相对独立性势必会提高。SD方法的目标是使块间联系尽量小,块内联系尽量大。6.3.3描述方式结构图中的主要成分有:·模块——它用方框表示,方框中写有模块的名字,一个模块的名字应适当地反映这个模块的功能,这就在某种程度上反映了块内联系。·调用——从一个模块指向另一模块的箭头表示前一模块中含有对后一模块的调用。·数据——调用箭头边上的小箭头表示调用时从一个模块传送给另一模块的数据,小箭头也指出了传送的方向。左图(a)的结构图说明模块A含有一个或多个对模块B的调用。A调用B时,A将数据X、Y传送给B,B返回到A时,将数据Z传送给A。如果B将对Y作修改,然后再将Y回送给A。则Y应出现在调用箭头的两边(左图(b)).左图中的A为B的调用模块或调用者,B为A的被调模块或下层模块。除上述基本符号外,结构图中可以再加上一些辅助性的符号,如左图表示模块A有条件地调用模块B,并有条件地调用C或D,图中的菱形符号表示一个条件。右图表示模块A循环地调用B和C,弧形箭头表示循环。下页图中带有双竖线的方框表示现成的模块(如程序库中现有的模块),它们不必再另行编写,这种模块总出现在结构图的底层。设计员可根据具体情况决定是否有必要画出这些辅助性的符号。结构图并不一定是树形的,许多