2.系统开发基础-软件设计(4)

来源:互联网 发布:找不到女朋友 知乎 编辑:程序博客网 时间:2024/05/14 12:55

软件设计

软件设计的任务与活动

软件设计包括概要设计和详细设计。概要设计又称为总体设计,其中概要设计的任务把需求分析得到的数据流图转化为软件结构和数据结构。设计软件结构的具体任务将一个复杂系统按照功能模块进行划分,建立模块的层次结构与调用关系,确定模块间的接口以及人机界面。而数据结构设计包括数据特征的描述以及数据库的设计,这是概要设计阶段的主要任务。详细阶段任务对概要设计进行细化工作,也就是详细设计每个模块的实现算法所需要的局部结构。简单的说,软件设计阶段任务就是确定系统如何做的问题,根据系统功能划分模块,然后设计出各个模块之间的算法以及模块之间的结构、调用关系、接口等。

模块设计的原则

模块设计的原则:高内聚、低耦合。
  • 内聚是单个模块内部当中各个元素之间的聚合程度,高内聚要求模块内部各元素之间的紧密性越高越好。
  • 耦合是模块与模块之间的紧密程度,低耦合要求模块与模块之间紧密程度越低越好。

内聚类型

内聚性可以划分:功能内聚、信息内聚、通信内聚、过程内聚、时间内聚、逻辑内聚、巧合内聚。

各内聚类型的模块独立性

内聚性最强的是功能内聚,内聚性最低的是巧合内聚。内聚性越高模块的独立性越强,内聚性越低模块独立性越低。

耦合类型

耦合性划分为:非直线耦合、数据耦合、标记耦合、控制耦合、外部耦合、公共耦合、内容耦合。

各耦合类型的模块独立性

非直线耦合的耦合性最低,而内容耦合的耦合性最高。耦合性低的模块独立性越强,耦合性高的模块独立性越弱。

应用的工具

IPO图

IPO图是(input process output)输入处理输出图,主要用于详细设计阶段。一般用它描述一个模块的输入、输出、处理以及数据加工它们之间的关系。

PDL

PDL是(procedure design language)程序设计语言也称为伪代码,它是以文本方式表示数据和处理过程的设计工具。PDL是一种非形式化的语言,对控制结构的描述是确定的,但控制结构内部的描述语法是不确定的。可以根据不同的应用领域和不同的设计层次灵活选用描述方式甚至可以用自然语言来描述。它与其他程序语言不同,PDL程序不可以在计算机执行的程序也就是伪代码,但是它可以通过转换程序自动转换成某种高级程序语言的源程序。

PAD图

PAD是(problem analysis diagram)问题分析图,它用二维数树型结构图表示程序的控制流。它比较容易翻译成机器代码。PAD具有以下一些特点:使用表示控制结构化的PAD符号所设计出的程序必须是结构化程序,PAD图所描述的程序结构比较清晰,用PAD图表示的程序逻辑明确易懂。

程序流程图

程序流程图又称为程序框图,能够清晰的描述出程序设计整个流程。它是历史最久的描述程序过程设计的方法,但也是用的最混乱的方法。程序流程图的主要优点:对控制流程描述直观且便于初学者掌握。它的缺点:由于程序流程图中用箭头代表控制流,经常诱使开发人员不顾结构化设计的理念随意转移控制,不支持逐步求进方法也不易于表现数据结构。IPO图、PDL、PAD图、程序流程图都是详细设计阶段的工具。

N/S盒图

N/S盒图也是一种符合结构化设计原则的图形描述工具。它含有三种基本结构:顺序结构、选择结构、循环结构。它的特点:功能域明确、不可能任意转移控制、很容易确定局部和全局数据的作用域、很容易表示嵌套关系及模块的层次关系、清晰的描述出程序设计整个流程。

0 0