- 1、本文档共131页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
软件工程实践 第四讲 软件设计 内容 包括软件结构设计和软件详细设计 软件设计的概念 软件设计的过程 软件设计的方法 软件设计的产品 目的 掌握软件设计基本概念 掌握软件设计过程 了解基本软件设计方法(SC+流程图) 了解软件设计说明的内容条目 设计 设计:为了能够足够详细地定义一种设备、一个处理或一个系统,以便保证其物理实现,而应用各种技术和原则的过程 设计者的目标是生成一个随后要构造的实体的一种模型或表示 开发模型的过程综合了基于构造类似实体的经验的直觉和判断、一系列指导模型演化路径的原则和直观推断、一系列判断质量的标准以及导出最终设计表示的迭代过程 软件设计的目标和目的 软件需求:解决“做什么” 软件设计:解决“怎么做” 问题结构(软件需求) 软件结构 从软件需求规格说明书出发,形成软件的具体设计方案 将分析模型转换为软件设计 软件设计的任务 数据设计:将分析时创建的信息域模型变换为实现软件所需的数据结构 结构设计:定义软件系统各主要部件之间的关系 接口设计:描述软件内部、软件和协作系统之间以及软件与人之间如何通信 过程设计:把系统结构部件转换成软件单元的过程性描述 软件设计视图 开发阶段的信息流 正确的软件设计 软件设计是后续开发步骤及软件维护工作的基础。如果没有设计,只能建立一个不稳定的系统结构 软件设计的重要性—质量 设计是在软件开发中形成质量的环节 设计是能将用户需求转化为完整的软件产品或系统的唯一方法 设计是软件工程和软件维护的基础 软件设计的过程 软件设计是一个迭代的过程 先进行高层次的结构设计 后进行低层次的过程设计 穿插进行数据设计和接口设计 软件设计过程 1. 制定规范 在进入软件开发阶段之初,首先应为软件开发组制定在设计时应该共同遵守的标准,以便协调组内各成员的工作。包括:阅读和理解软件需求说明书,确认用户要求能否实现,明确实现的条件,从而确定设计的目标,以及它们的优先顺序 根据目标确定最合适的设计方法 规定设计文档的编制标准 规定编码的信息形式,与硬件,操作系统的接口规约,命名规则 软件设计过程 2. 软件系统结构的总体设计 基于功能层次结构建立系统。 采用某种设计方法,将系统按功能划分成模块的层次结构 确定每个模块的功能 建立与已确定的软件需求的对应关系 确定模块间的调用关系 确定模块间的接口 评估模块划分的质量 软件设计过程 3. 处理方式设计 确定为实现系统的功能需求所必需的算法,评估算法的性能 确定为满足系统的性能需求所必需的算法和模块间的控制方式 周转时间 响应时间 吞吐量 精度 确定外部信号的接收发送形式 软件设计过程 4. 数据结构设计 确定软件涉及的文件系统的结构以及数据库的模式、子模式,进行数据完整性和安全性的设计 确定输入,输出文件的详细的数据结构 结合算法设计,确定算法所必需的逻辑数据结构及其操作 确定对逻辑数据结构所必需的那些操作的程序模块(软件包) 软件设计过程 限制和确定各个数据设计决策的影响范围 若需要与操作系统或调度程序接口所必须的控制表等数据时,确定其详细的数据结构和使用规则 数据的保护性设计 防卫性设计:在软件设计中就插入自动检错,报错和纠错的功能 一致性设计: 保证软件运行过程中所使用的数据的类型和取值范围不变 在并发处理过程中使用封锁和解除封锁机制保持数据不被破坏 冗余性设计:针对同一问题,由两个开发者采用不同的程序设计风格不同的算法设计软件,当两者运行结果之差不在允许范围内时,利用检错系统予以纠正,或使用表决技术决定一个正确结果。 软件设计过程 5.可靠性设计 可靠性设计也叫做质量设计 在运行过程中,为了适应环境的变化和用户新的要求,需经常对软件进行改造和修正。在软件开发的一开始就要确定软件可靠性和其它质量指标,考虑相应措施,以使得软件易于修改和易于维护 良好设计的特征(设计目标) 设计必须实现所有包含在分析模型中的明示需求,并且必须满足客户希望的所有潜在需求 设计对于软件的编码、测试、维护人员必须是可读的、可理解的 设计应该提供软件的完整面貌,包括从实现角度所见的数据、功能、流程 设计的指南 1 设计应该展示一种层次化结构 2 设计应该模块化,即逻辑地划分成完成特定功能和子功能的构件 3 设计应该包括对数据、结构、界面和部件的清楚表述 4 设计应该导出适于实现目的和由公认的数据模式导出的数据结构 5 设计应该导出具有独立功能特征的模块 6 设计应该导出降低模块和外部环境间连接复杂度的接口 7 设计应该通过使用可重复的方法来得到,这些方法被来源于软件需求分析的信息所驱动 设计原则 设计过程不应该受“隧道视野”的限制 设计对于分析模型应该是可追踪的 设计不应该从头做起 设计应该缩短软件和现实世界的“智力
文档评论(0)