- 1、本文档共113页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
复旦大学计算机科学与工程系 软件工程课程 软件工程 第4章 设计工程 内容摘要 软件设计工程概述 软件设计原则 软件体系结构设计 部件级设计技术 设计规约与设计评审 内容摘要 软件设计工程概述 软件设计原则 软件体系结构设计 部件级设计技术 设计规约与设计评审 软件设计工程概述 软件需求分析解决“做什么”的问题,软件设计过程则解决“怎么做”的问题 软件设计是把软件需求变换成软件表示的过程,它主要包含两个阶段:软件体系结构设计阶段和部件级设计 软件设计的任务 使用一种设计方法,软件分析模型中通过数据、功能和行为模型所展示的软件需求的信息被传送给设计阶段,产生数据/类设计、体系结构设计、接口设计、部件级设计 数据/类设计:将分析-类模型变换成类的实现和软件实现所需要的数据结构 体系结构设计:体系结构设计定义了软件的整体结构 接口设计:接口设计描述了软件内部、软件和协作系统之间以及软件同人之间如何通信 部件级设计:部件级设计将软件体系结构的结构性元素变换为对软件部件的过程性描述 1)数据/类设计 在类和由CRC中定义的数据对象和关系以及数据字典中描述的详细数据内容提供了数据设计活动的基础 数据设计的过程包括以下两步 : 首先,为在需求分析阶段所确定的数据对象选择逻辑表示,需要对不同结构进行算法分析,以便选择一个最有效的设计方案; 然后,确定对逻辑数据结构所必需的那些操作的程序模块,以便限制或确定各个数据设计决策的影响范围。 2)体系结构设计 体系结构设计定义了软件的整体结构,它由软件部件、外部可见的属性和它们之间的关系组成。 体系结构设计表示可以从系统规约、分析模型和分析模型中定义的子系统的交互导出。 3)接口设计 接口设计主要包括三个方面: 设计软件模块间的接口 设计模块和其他非人的信息生产者和消费者(比如外部实体)之间的接口 设计人(用户)和计算机间的接口 4)部件级设计 部件级设计将软件体系结构的结构性元素变换为对软件部件的过程性描述。 从类为基础的模型、流模型、行为模型中得到的信息是部件设计的基础。 软件设计的目标 在进行软件设计的过程中,我们要密切关注软件的质量因素。 McGlanghlin 软件设计过程的目标: 1)设计必须实现分析模型中描述的所有显式需求,必须满足用户希望的所有隐式需求。 2)设计必须是可读、可理解的,使得将来易于编程、易于测试、易于维护。 3)设计应从实现角度出发,给出与数据、功能、行为相关的软件全貌。 软件设计是后续开发步骤及软件维护工作的基础。如果没有设计,只能建立一个不稳定的系统结构 软件设计任务 从工程管理的角度来看,软件设计分两步完成。 概要设计,将软件需求转化为数据结构和软件的系统结构。 详细设计,即过程设计。通过对结构表示进行细化,得到软件的详细的数据结构和算法。 衡量设计的技术标准 1) 设计出来的结构应是分层结构,从而建立软件成份之间的控制。 2) 设计应当模块化,从逻辑上将软件划分为完成特定功能或子功能的部件。 3) 设计应当既包含数据抽象,也包含过程抽象。 4) 设计应当建立具有独立功能特征的模块。 5) 设计应当建立能够降低模块与外部环境之间复杂连接的接口。 6) 设计应能根据软件需求分析获取的信息,建立可驱动、可重复的方法。 软件设计的过程 1) 制定规范 2) 体系结构和接口设计 3) 数据/类设计 4) 部件级(过程)设计 5) 编写设计文档 6) 设计评审 软件设计过程 1. 制定规范 在进入软件开发阶段之初,首先应为软件开发组制定在设计时应该共同遵守的标准,以便协调组内各成员的工作。包括: 阅读和理解软件需求说明书,确认用户要求能否实现,明确实现的条件,从而确定设计的目标,以及它们的优先顺序 根据目标确定最合适的设计方法 规定设计文档的编制标准 规定编码的信息形式,与硬件,操作系统的接口规约,命名规则 2. 软件系统结构的总体设计 基于功能层次结构建立系统。 采用某种设计方法,将系统按功能划分成模块的层次结构 确定每个模块的功能 建立与已确定的软件需求的对应关系 确定模块间的调用关系 确定模块间的接口 评估模块划分的质量 3. 处理方式设计 确定为实现系统的功能需求所必需的算法,评估算法的性能 确定为满足系统的性能需求所必需的算法和模块间的控制方式 周转时间 响应时间 吞吐量 精度 确定外部信号的接收发送形式 4. 数据结构设计 确定软件涉及的文件系统的结构以及数据库的模式、子模式,进行数据完整性和安全性的设计 确定输入,输出文件的详细的数据结构 结合算法设计,确定算法所必需的逻辑数据结构及其操作 确定对逻辑数据结构所必需的那些操作的程序模块(软件包) 限制和确定各个数
文档评论(0)