资源预览内容
第1页 / 共206页
第2页 / 共206页
第3页 / 共206页
第4页 / 共206页
第5页 / 共206页
第6页 / 共206页
第7页 / 共206页
第8页 / 共206页
第9页 / 共206页
第10页 / 共206页
亲,该文档总共206页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
第三章第三章 软件设计软件设计 软件设计的概念 模块独立性 软件体系结构 结构化设计方法 数据设计和文件设计 过程设计 用户界面设计1软件设计的目标软件设计的目标n n软件设计的基本目标是用比较抽象概括软件设计的基本目标是用比较抽象概括 的方式确定目标系统如何完成预定的任的方式确定目标系统如何完成预定的任 务。即软件设计是务。即软件设计是确定系统的物理模型确定系统的物理模型 。n n从技术观点来看,软件设计包括从技术观点来看,软件设计包括uu 软件结构设计软件结构设计uu 数据设计数据设计uu 接口设计接口设计uu 过程设计过程设计2将分析模型转换为设计将分析模型转换为设计数据词典数 据 流 图实体 关 系 图状态转换图加工规 格 说 明控制规 格说明数据 对 象 描 述过程设计接口设计体系结构设计数据设计3 从工程管理的角度来看,软件设计分两从工程管理的角度来看,软件设计分两 步完成:步完成:概要设计概要设计和和详细设计详细设计。 概要设计概要设计将软件需求将软件需求uu转化为转化为软件体系结构软件体系结构uu确定确定系统级接口系统级接口uu全局数据结构或数据库全局数据结构或数据库模式模式。 详细设计确立详细设计确立uu每个模块的每个模块的实现算法实现算法uu局部数据结构局部数据结构uu用适当方法表示用适当方法表示算法和数据结构算法和数据结构的的细细 节节。软件设计的概念软件设计的概念4 数据设计数据设计将实体将实体 关系图中描述的对象关系图中描述的对象 和关系,以及数据词典中描述的详细数和关系,以及数据词典中描述的详细数 据内容转化为数据结构的定义。据内容转化为数据结构的定义。 体系结构设计体系结构设计定义软件系统各主要成份定义软件系统各主要成份 之间的关系。之间的关系。 接口设计接口设计根据数据流图定义软件内部各根据数据流图定义软件内部各 成份之间、软件与其它协同系统之间及成份之间、软件与其它协同系统之间及 软件与用户之间的交互机制。软件与用户之间的交互机制。 过程设计过程设计则是把结构成份转换成软件的则是把结构成份转换成软件的 过程性描述。过程性描述。5 软件设计是后续开发步骤及软件维护工软件设计是后续开发步骤及软件维护工 作的基础。如果没有设计,只能建立一作的基础。如果没有设计,只能建立一 个不稳定的系统结构个不稳定的系统结构6软件概要设计过程软件概要设计过程1. 1. 制定规范制定规范 在进入软件开发阶段之初,首先应为软在进入软件开发阶段之初,首先应为软 件开发组制定在设计时应共同遵守的标件开发组制定在设计时应共同遵守的标 准,以便协调组内各成员的工作。包括准,以便协调组内各成员的工作。包括: : 阅读和理解软件需求说明,确认用户阅读和理解软件需求说明,确认用户 要求能否实现,明确实现的条件,从而要求能否实现,明确实现的条件,从而 确定设计的目标,以及它们的优先顺序确定设计的目标,以及它们的优先顺序 。 根据目标确定最合适的设计方法。根据目标确定最合适的设计方法。 规定设计文档的编制标准。规定设计文档的编制标准。7规定编码的信息形式,与硬件,操作规定编码的信息形式,与硬件,操作 系统的接口规约,命名规则。系统的接口规约,命名规则。 2. 2. 软件系统结构的总体设计软件系统结构的总体设计 基于功能层次结构建立系统。基于功能层次结构建立系统。 采用某种设计方法,将系统按功能划采用某种设计方法,将系统按功能划 分成分成模块的层次结构模块的层次结构; 确定每个确定每个模块的功能模块的功能; 建立建立与已确定的软件需求的对应关系与已确定的软件需求的对应关系 ; 确定确定模块间的调用关系模块间的调用关系; 确定确定模块间的接口模块间的接口; 评估评估模块划分的质量模块划分的质量;83. 3. 处理方式设计处理方式设计 确定为实现系统的确定为实现系统的功能需求功能需求所必需的所必需的 算法算法,评估,评估算法的性能算法的性能 确定为满足系统的确定为满足系统的性能需求性能需求所必需的所必需的 算法算法和和模块间的控制方式模块间的控制方式 周转时间周转时间 响应时间响应时间 吞吐量吞吐量 精度精度 确定外部信号的确定外部信号的接收发送形式接收发送形式94. 4. 数据结构设计数据结构设计 确定软件涉及的文件系统的结构以及确定软件涉及的文件系统的结构以及 数据库的模式、子模式,进行数据完数据库的模式、子模式,进行数据完 整性和安全性的设计整性和安全性的设计 确定输入,输出文件的详细的数据结确定输入,输出文件的详细的数据结 构构 结合算法设计,确定算法所必需的逻结合算法设计,确定算法所必需的逻 辑数据结构及其操作辑数据结构及其操作 确定对逻辑数据结构所必需的那些操确定对逻辑数据结构所必需的那些操 作的程序模块作的程序模块( (软件包软件包) )10 限制和确定各个数据设计决策的影响限制和确定各个数据设计决策的影响 范围;范围; 若需要与操作系统或调度程序接口所若需要与操作系统或调度程序接口所 必须的控制表等数据时,确定其详细必须的控制表等数据时,确定其详细 的数据结构和使用规则。的数据结构和使用规则。 数据的保护性设计数据的保护性设计 防卫性设计防卫性设计:在软件设计中就插入:在软件设计中就插入 自动检错,报错和纠错的功能;自动检错,报错和纠错的功能; 一致性设计一致性设计:uu 类型和取值范围不变;类型和取值范围不变;11uu在并发处理过程中使用封锁和解除在并发处理过程中使用封锁和解除 封锁机制保持数据不被破坏。封锁机制保持数据不被破坏。 冗余性设计冗余性设计:针对同一问题:针对同一问题, , 由两个由两个 开发者采用不同的程序设计风格不同开发者采用不同的程序设计风格不同 的算法设计软件,当两者运行结果之的算法设计软件,当两者运行结果之 差不在允许范围内时,利用检错系统差不在允许范围内时,利用检错系统 予以纠正,或使用表决技术决定一个予以纠正,或使用表决技术决定一个 正确结果。正确结果。 5. 5. 可靠性设计可靠性设计 在软件开发一开始就要确定软件可靠性在软件开发一开始就要确定软件可靠性 和其它质量指标,考虑相应措施,以使和其它质量指标,考虑相应措施,以使 得软件易于修改和易于维护。得软件易于修改和易于维护。126. 6. 编写概要设计阶段的文档编写概要设计阶段的文档 概要设计阶段完成时应编写以下文档概要设计阶段完成时应编写以下文档 : 概要设计说明书概要设计说明书 数据库设计说明书数据库设计说明书 用户手册用户手册 制定初步的测试计划制定初步的测试计划 7. 7.概要设计评审概要设计评审 可追溯性可追溯性:确认该设计是否复盖了所:确认该设计是否复盖了所 有已确定的软件需求,软件每一成份有已确定的软件需求,软件每一成份 是否可追溯到某一项需求是否可追溯到某一项需求; ;13 接口接口:确认该软件的内部接口与外部接:确认该软件的内部接口与外部接 口是否已经明确定义。模块是否满足高口是否已经明确定义。模块是否满足高 内聚和低耦合的要求。模块作用范围是内聚和低耦合的要求。模块作用范围是 否在其控制范围之内否在其控制范围之内; ; 风险风险:确认该设计在现有技术条件下和:确认该设计在现有技术条件下和 预算范围内是否能按时实现预算范围内是否能按时实现; ; 实用性实用性:确认该设计对于需求的解决方:确认该设计对于需求的解决方 案是否实用案是否实用; ; 技术清晰度技术清晰度:确认该设计是否以一种易:确认该设计是否以一种易 于翻译成代码的形式表达于翻译成代码的形式表达; ;14 可维护性可维护性:确认该设计是否考虑了方:确认该设计是否考虑了方 便未来的维护便未来的维护; ; 质量质量:确认该设计是否表现出良好的:确认该设计是否表现出良好的 质量特征质量特征; ; 各种选择方案各种选择方案:看是否考虑过其它方:看是否考虑过其它方 案,比较各种选择方案的标准是什么案,比较各种选择方案的标准是什么; ; 限制限制:评估对该软件的限制是否现实:评估对该软件的限制是否现实 ,是否与需求一致,是否与需求一致; ; 其他具体问题其他具体问题:对于文档、可测试性:对于文档、可测试性 、设计过程、设计过程 等进行评估等进行评估; ;15 在详细设计过程中,需要完成的工作在详细设计过程中,需要完成的工作 是:是: 确定软件各个组成部分内的算法以确定软件各个组成部分内的算法以 及各部分的内部数据组织及各部分的内部数据组织 选定某种过程的表达形式来描述各选定某种过程的表达形式来描述各 种算法。种算法。 进行详细设计的评审进行详细设计的评审软件详细设计过程软件详细设计过程16n n在将需求转换为设计时判断设计好坏的在将需求转换为设计时判断设计好坏的 三条特征:三条特征:uu设计必须实现分析模型中描述的所有设计必须实现分析模型中描述的所有 显式需求显式需求,必须满足用户希望的所有,必须满足用户希望的所有 隐式需求隐式需求。uu设计必须是设计必须是可读的可读的、可理解的可理解的,使得,使得 将来易于编程、易于测试、易于维护将来易于编程、易于测试、易于维护 。uu设计应从设计应从实现角度实现角度出发,给出与出发,给出与数据数据 、功能功能、行为行为相关的软件全貌。相关的软件全貌。设计必须满足的特征设计必须满足的特征17n n衡量设计的技术原则:衡量设计的技术原则:uu设计出来的结构应是分层结构。设计出来的结构应是分层结构。uu设计应当模块化。设计应当模块化。uu设计应当包含数据抽象和过程抽象。设计应当包含数据抽象和过程抽象。uu设计应当建立具有具有独立功能的模设计应当建立具有具有独立功能的模 块。块。uu设计应当建立能够降低模块与外部环设计应当建立能够降低模块与外部环 境之间复杂连接的接口。境之间复杂连接的接口。uu设计应能根据软件需求信息,建立可设计应能根据软件需求信息,建立可 驱动可复用的方法。驱动可复用的方法。衡量设计的原则衡量设计的原则18n n软件设计的基本原则软件设计的基本原则uu 抽象化抽象化 模块设计可有不同抽象层模块设计可有不同抽象层 次次uu 过程抽象过程抽象uu 数据抽象数据抽象uu 自顶向下,逐步细化自顶向下,逐步细化uu 将软件体系结构自顶向下,对过将软件体系结构自顶向下,对过 程细节和数据细节逐层细化,直到程细节和数据细节逐层细化,直到 用编程语言的语句能够实现为止。用编程语言的语句能够实现为止。软件设计的原则软件设计的原则19(1) (1) 过程的抽象过程的抽象 在软件工程中,从系统定义到实现,每在软件工程中,从系统定义到实现,每 进展一步都可以看做是对软件解决方法进展一步都可以看做是对软件解决方法 的抽象化过程的一次细化。的抽象化过程的一次细化。 在软件需求分析阶段,用在软件需求分析阶段,用“ “问题所处问题所处 环境的为大家所熟悉的术语环境的为大家所熟悉的术语” ”来描述软来描述软 件的解决方法。件的解决方法。 在从概要设计到详细设计的过程中,在从概要设计到详细设计的过程中, 抽象化的层次逐次降低。当产生源程序抽象化的层次逐次降低。当产生源程序 时到达最低抽象层次。时到达最低抽象层次。20例例: : 开发一个开发一个CADCAD软件的三层抽象软件的三层抽象 抽象层次抽象层次. . 用问题所处环境的术语来用问题所处环境的术语来 描述这个软件描述这个软件: :
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号