- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
[工学]第04章 设计工程
软件工程 第4章 设计工程 内容摘要 软件设计工程概述 软件设计原则 软件体系结构设计 部件级设计技术 设计规约与设计评审 内容摘要 软件设计工程概述 软件设计原则 软件体系结构设计 部件级设计技术 设计规约与设计评审 软件设计工程概述 软件需求分析解决“做什么”的问题,软件设计过程则解决“怎么做”的问题 软件设计是把软件需求变换成软件表示的过程,它主要包含两个阶段:软件体系结构设计阶段和部件级设计 对比:早期的软件设计局限于数据结构和算法层面上,抽象层次比较低 为什么要进行软件系统设计 软件系统实现的高层方案 软件系统越来越复杂,需要将其划分为若干部分分而治之—模块化 不同的小组或开发者负责不同的部分 然后在系统层面上进行集成 负责不同部分的开发者对于其它模块需要了解的信息越少越好—抽象与信息隐藏 这些部分之间还需要定义清晰、明确的接口—接口设计 软件系统设计的重要性 软件系统设计是开发者之间的分工和合作和基础 设计方案是决定系统质量的主要因素 设计方案可以借鉴成熟的设计经验 设计方案完成后需要经过质量分析和评审 好的设计方案不仅能很好地支持当前需求的实现,而且能减小未来的系统维护(理解、修改、扩展)成本 软件设计的任务 在软件分析模型中的需求信息(数据、功能和行为)基础上,产生软件系统各个层次上的设计方案 数据/类设计:将分析-类模型变换成类的实现和软件实现所需要的数据结构 体系结构设计:体系结构设计定义了软件的主要结构元素以及相互之间的关系 接口设计:接口设计描述了软件内部、软件和协作系统之间以及软件同人之间如何通信 部件级设计:部件级设计将软件体系结构的结构性元素变换为对软件部件的过程性描述 设计任务1—数据/类设计 基础:在类和CRC中定义的数据对象和关系(实体及实体关系)以及数据字典中描述的详细数据内容(详细信息) 数据设计的过程 为在需求分析阶段所确定的数据对象选择逻辑表示 确定对逻辑数据结构所必需的那些操作的程序模块 设计任务2—体系结构设计 定义软件的整体结构:软件部件、外部可见的属性和它们之间的关系 体系结构设计:可以从系统规约、分析模型和分析模型中定义的子系统的交互导出 设计任务3—接口设计 接口设计主要包括三个方面 UI:用户和计算机间的接口(界面) 和外部系统、设备、网络或信息生产者和消费者(比如外部实体)之间的接口 外部系统接口:银行网上支付接口 设备接口:读卡器、扫描枪、传感器接口 信息接口:需要导入/导出的数据接口 设计软件内部各个部件间的接口 设计任务4—部件级设计 部件级设计完整地描述每个软件部件的内部细节 部件整体的处理和执行流程 部件内本地数据对象的数据结构 部件内处理过程的算法 从类为基础的模型、流模型、行为模型中得到的信息是部件设计的基础 软件设计的(质量)目标 满足用户需求 必须实现分析模型中所有的显式需求 必须满足用户希望的所有隐式需求 可读、可理解:设计必须是可读、可理解的,使得将来易于编程、易于测试、易于维护 全面性:应从实现角度出发,给出与数据、功能、行为相关的软件全貌 衡量设计的技术原则-1 分层的设计结构:从而建立软件系统的分层控制结构 模块化:从逻辑上将软件划分为完成特定功能或子功能的部件 数据与过程:设计既包含数据抽象,也包含过程抽象 衡量设计的技术原则-2 高内聚:建立具有独立功能特征的模块 低耦合:尽量降低模块与外部环境之间的接口复杂度 系统化/方法化:设计应能根据软件需求分析获取的信息,建立可驱动、可重复的方法 软件设计的过程-1 制定设计规范 通过阅读系统需求说明书确定设计目标以及这些目标的优先顺序 设计方法:结构化、面向对象… 设计文档的编制标准 基本的实现规范:代码的信息形式、与硬件及操作系统的接口规约、命名规则 软件设计的过程-2 迭代展开、不断细化的系统设计 体系结构和接口设计 数据/类设计 部件级(过程)设计 编写设计文档 设计评审 内容摘要 软件设计工程概述 软件设计原则 软件体系结构设计 部件级设计技术 设计规约与设计评审 软件设计的基本原则 抽象:考虑高层问题时忽略低层细节 逐步求精:不断接近问题的完整解 模块化:将系统划分为相对独立但又有所关联的多个部分 信息隐藏:对其它模块隐藏内部细节 模块独立:模块功能相对独立—高内聚/低耦合 抽象 控制复杂性的基本策略 抽象过程:从特殊到一般的过程,上层概念是下层概念的抽象,下层概念是上层概念的精化和细化 软件开发过程的每一步都是对较高一级抽象的解作一次具体化的描述 与实现无关的需求—考虑特定实现技术的设计、将每个模块逐一编码实现…… 过程抽象与数据抽象 过程抽象:功能角度的抽象 使用者将功能体作为单个功能看待 这些功能实际上是由一系列更低级的功能或代码来实现的 过
文档评论(0)