1、第五章 软件设计过程 o软件设计是软件工程的重要阶段。o软件设计过程是对程序结构、数据结构和过程细节逐步求精、复审并编制文档的过程 。5.1 软件设计基础Date 1从分析到设计Date 25.1.1 设计过程 软件开发阶段由设计、编码和测试三个基本活动组成,其中 “ 设计活动 ” 是 获取高质量、低耗费、易维护软件最重要的一个环节。需求分析阶段获得的需求规格说明书包括对欲实现系统的信息、功能和行为方面的描述, 这是软件设计的基础。对此采用任一种软件设计方法都将产生系统的 总体结构设计 (architectural design)、系统的数据设计 (data design)和系统的过程设计 (
2、procedural design)。Date 3设计过程o数据设计 把信息描述转换为实现软件所要求的数据结构 。o总体结构设计 旨在确定程序各主要部件之间的关系。 o过程设计 要 完成每一部件的过程化描述。o根据设计结果编制代码。然后交给测试人员测试o设计阶段做的决策直接影响软件质量 ,没有良好的设计就没有稳定的系统 ,也不会有易维护的软件。o统计表明:设计、编码和测试这三个活动一般占用整个软件开发费用 (不包括维护阶段 )的 75%以上。 Date 4开发阶段的信息流Date 55.1.2 软件设计基本概念o软件设计基本概念是过去三十年里陆续提出的。o软件设计者根据这组概念进行设计决策如
3、:划分子部件 的 标准 ;从软件的概念表示中分离出功能和数据结构的细节;以统一的标准衡量软件设计质量等等。Date 61 抽象与逐步求精抽象 是管理、控制复杂性的基本策略 。“ 抽象 ” 是心理学概念 ,它要求人们将注意力集中在某一层次上考虑问题 ,而忽略那些低层次的细节。使用抽象技术便于人们用 “ 问题域 ” 的概念和术语描述问题 ,而无须过早地转换为那些不熟悉的结构。软件设计过程是在不同抽象级别 上 考虑、处理问题的过程。() 在 最高抽象级别 上 ,用 面向问题域的语言 叙述 “ 问题 ” ,概括 “ 问题解 ” 的形式 。() 不断地具体化 ,不断地用 面向过程的语言 描述问题 。()
4、 在最低的抽象级别上给出可直接 实现的 “ 问题解 ” ,即程序。 Date 7软件工程过程的每一步都是对较高一级抽象的解作一次较具体化的描述。o在 系统定义 阶段 , 软件系统被描述为基于计算机的大系统的一个组成部分 ;o在 软件规划和需求分析 阶段 ,软件用问题域约定的习惯用语表达 ;o从 概要设计过渡到详细设计 时 ,抽象级再一次降低 ;o编码 完成后 , 达到了抽象的最低级。Date 8在由高级抽象到低级抽象的转换过程中 ,伴随着一连串的过程抽象和数据抽象。o过程抽象 把完成一个特定功能的动作序列抽象为一个过程名和参数表,通过指定过程名和实际参数调用此过程 ;o数据抽象 把一个数据对象的定义 (或描述 )抽象为一个数据类型名,用此类型名可定义多个具有相同性质的数据对象。 Date 9不同抽象级别的软件形式例 5 1 考虑适用于低级 CAD的图形软件包。 抽象 1该 CAD软件系统配有能与作图员进行可视化通讯的图形界面。能用鼠标替代作图板和直尺画各种直线和曲线。能完成所有几何计算及所有截面视图和辅助视图的设计。图形设计的结果存在图形文件中 ,图形文件可包含几何的、正文的和其他各种补充设计信息。 在这一抽象级别上 ,问题的解用问题域本身的术语描述。 Date 10