第3章 软件工程设计和详细设计



《第3章 软件工程设计和详细设计》由会员分享,可在线阅读,更多相关《第3章 软件工程设计和详细设计(85页珍藏版)》请在文档大全上搜索。
1、 软件设计就是根据所表示的信息域的软件软件设计就是根据所表示的信息域的软件需求,以及功能和性能需求,进行数据结构设需求,以及功能和性能需求,进行数据结构设计、系统结构设计、过程设计(算法设计)、计、系统结构设计、过程设计(算法设计)、界面设计。界面设计。 软件设计是软件开发的关键步骤,直接影软件设计是软件开发的关键步骤,直接影响软件质量响软件质量。软件设计阶段要解决软件设计阶段要解决“如何做如何做”的问题。的问题。 将需求阶段获得的需求说明将需求阶段获得的需求说明(模型)转换为计算机中可实现的系统。设(模型)转换为计算机中可实现的系统。设计阶段主要任务是计阶段主要任务是: :软件体系结构的设计
2、软件体系结构的设计数据结构的设计数据结构的设计用户界面的设计用户界面的设计算法的设计算法的设计软件软件涉及多方面,可分为总体设计和详细设计。涉及多方面,可分为总体设计和详细设计。过程设计过程设计系统结构设计系统结构设计数据设计数据设计界面设计界面设计软件设计软件设计任务任务数据设计侧重数据设计侧重于软件数据结于软件数据结构的定义。构的定义。系统结构设计定义软件系统的整体结构,系统结构设计定义软件系统的整体结构,是软件开发的核心步骤,在设计步骤中,是软件开发的核心步骤,在设计步骤中,建立软件主要成份之间的关系。建立软件主要成份之间的关系。界面设计是对系统边界的描述,界面设计是对系统边界的描述,是
3、用户和系统进行交互的工具。是用户和系统进行交互的工具。过程设计则是把结过程设计则是把结构成份转换成软件构成份转换成软件的过程性描述。的过程性描述。数据设计侧重于软件数据结构的定义。确定数据的数据设计侧重于软件数据结构的定义。确定数据的类型,组织、存取方式,相关程度。类型,组织、存取方式,相关程度。系统结构设计定义软件系统的整体结构,是软件开系统结构设计定义软件系统的整体结构,是软件开发的核心步骤,在设计步骤中,建立软件主要成份之发的核心步骤,在设计步骤中,建立软件主要成份之间的关系。合理的模块划分可以降低软件开发的复杂间的关系。合理的模块划分可以降低软件开发的复杂度,同时也能提高软件的可重用性
4、。度,同时也能提高软件的可重用性。过程设计则是把结构成份转换成软件的过程性描述。过程设计则是把结构成份转换成软件的过程性描述。界面设计是对系统边界的描述,用户界面是用户和界面设计是对系统边界的描述,用户界面是用户和系统进行交互的工具,人机接口直接影响软件的寿命。系统进行交互的工具,人机接口直接影响软件的寿命。软件设计分为软件设计分为总体设计总体设计和和详细设计详细设计两个阶段。两个阶段。 其工作流程可用下图表示:其工作流程可用下图表示: 总体总体设计设计需求需求 说明书说明书复审复审软件软件 结构结构修修 改改详细详细设计设计可接受可接受模块描述模块描述复审复审修修 改改设计说设计说 明书明书
5、1 1、设计阶段结束要交付的文档是设计说明书,根据、设计阶段结束要交付的文档是设计说明书,根据设计方法的不同,有不同的设计文档。设计方法的不同,有不同的设计文档。2 2、每个设计步骤完成后,都应进行复审。、每个设计步骤完成后,都应进行复审。二二 软件设计阶段软件设计阶段软件设计工作流程图软件设计工作流程图从工程管理的角度来看,软件设计分两步完成;分从工程管理的角度来看,软件设计分两步完成;分为总体设计(概要设计)和详细设计两个阶段。为总体设计(概要设计)和详细设计两个阶段。首先作总体设计,将软件需求转化为数据结构和软首先作总体设计,将软件需求转化为数据结构和软件的系统结构,划分出系统的物理元素
6、:程序、数据件的系统结构,划分出系统的物理元素:程序、数据库、过程、文件、类等;然后是详细设计,即过程设库、过程、文件、类等;然后是详细设计,即过程设计,通过对结构表示进行细化,得到软件详细的数据计,通过对结构表示进行细化,得到软件详细的数据结构和算法。结构和算法。 软件软件就是构造一个高内聚低耦合就是构造一个高内聚低耦合的软件模型。的软件模型。软件软件高可靠高可靠性性高可维高可维护性护性高可理高可理解性解性高效率高效率软件设计的目标三三 软件设计目标软件设计目标可根据以下准则来衡量软件设计的目标:可根据以下准则来衡量软件设计的目标: 软件实体有明显的层次结构,利于软件元素间软件实体有明显的层
7、次结构,利于软件元素间控制;控制; 软件实体应该是模块化的,模块具有独立功能;软件实体应该是模块化的,模块具有独立功能; 软件实体与环境的界面清晰;软件实体与环境的界面清晰; 设计规格说明清晰、简洁、完整和无二义性。设计规格说明清晰、简洁、完整和无二义性。常用的设计方法有:常用的设计方法有: SD法法、 OOD法法、 Jackson法、法、HIPO法、法、 Parnas法、法、 Warnier法等。法等。3.2 3.2 软件体系结构设计软件体系结构设计软件体系结构提供了结构、行为和属性的高级抽软件体系结构提供了结构、行为和属性的高级抽象,确定了系统的组织结构和拓扑结构,显示了系统象,确定了系统
8、的组织结构和拓扑结构,显示了系统需求和构成系统的元素之间的对应关系,提供了一些需求和构成系统的元素之间的对应关系,提供了一些设计决策的基本原理。设计决策的基本原理。 体系结构的设计过程的主要活动:体系结构的设计过程的主要活动:1.系统分解系统分解将系统分解为若干相互作用的子系统。将系统分解为若干相互作用的子系统。2.控制建模控制建模建立系统各部分间控制关系的一般模型。建立系统各部分间控制关系的一般模型。3.模块分解模块分解 将子系统进一步划分为模块。将子系统进一步划分为模块。 完整的系统都是由若干功能相对独立的子系统聚合完整的系统都是由若干功能相对独立的子系统聚合而成的,每个子系统又都通过某种
9、方式来共享数据。而成的,每个子系统又都通过某种方式来共享数据。注意注意: 往往子系统与模块之间没有明显界限往往子系统与模块之间没有明显界限.体系结构设计是软件设计的第一个阶段,该阶段侧体系结构设计是软件设计的第一个阶段,该阶段侧重于系统宏观结构的设计,而不关心模块的内部算法。重于系统宏观结构的设计,而不关心模块的内部算法。体系结构的分类:体系结构的分类:一、仓库模型一、仓库模型(The repository model) 也称也称“容器模型容器模型 ”,是一种集中式的模型。各子,是一种集中式的模型。各子系统可以直接访问中央数据仓库存储的共享数据。子系统可以直接访问中央数据仓库存储的共享数据。子
10、系统之间紧密耦合。系统之间紧密耦合。 中央数据仓库中央数据仓库(Repository)子系统子系统1子系统子系统2子系统子系统n 仓库结构仓库结构设计编辑器设计编辑器代码生成器代码生成器设计分析器设计分析器报告生成器报告生成器设计转换器设计转换器项项 目目 存存 储储程序编辑器程序编辑器 集成集成CASE工具集的体系结构工具集的体系结构 各子系统共享中央数据库中的数据各子系统共享中央数据库中的数据共享容器模型共享容器模型 各子系统可以有自己的数据库,子系统之间通过消各子系统可以有自己的数据库,子系统之间通过消息传递实现数据交换。息传递实现数据交换。适宜命令控制系统、适宜命令控制系统、CAD系统
11、系统 仓库模型的主要仓库模型的主要优点:优点: 1.共享大数据量的有效方法。共享大数据量的有效方法。 2.子系统不必关心其它的子系统如何使用它所产生的数子系统不必关心其它的子系统如何使用它所产生的数据。据。 3.易于将新子系统集成,若新子系统也采用相同规范易于将新子系统集成,若新子系统也采用相同规范 。 仓库模型的主要仓库模型的主要缺陷:缺陷: 1.为了共享数据,各子系统必须有一致的数据视图为了共享数据,各子系统必须有一致的数据视图 ,不可避免地会影响了整个系统的性能。不可避免地会影响了整个系统的性能。 2.子系统的改变,使产生的数据结构也可能发生改变。子系统的改变,使产生的数据结构也可能发生