欢迎来到天天文库
浏览记录
ID:56966153
大小:733.50 KB
页数:119页
时间:2020-07-22
《软件工程ch5设计工程与结构化设计课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、软件工程第5章设计工程与结构化设计内容摘要软件设计工程概述软件设计原则软件体系结构设计部件级设计技术设计规约与设计评审内容摘要软件设计工程概述软件设计原则软件体系结构设计部件级设计技术设计规约与设计评审软件设计工程概述需求分析“做什么”软件设计“怎么做”软件设计=软件需求软件表示软件设计软件体系结构设计部件级设计对比:早期局限于数据结构和算法层面上为什么要进行软件系统设计软件系统实现的高层方案软件系统越来越复杂,需要将其划分为若干部分分而治之—模块化不同的小组或开发者负责不同的部分然后在系统层面上进行集成负责不同部分的开发者对于其它模块需要
2、了解的信息越少越好—抽象与信息隐藏这些部分之间还需要定义清晰、明确的接口—接口设计软件系统设计的重要性软件系统设计是开发者之间的分工和合作的基础设计方案是决定系统质量的主要因素设计方案可以借鉴成熟的设计经验设计方案完成后需要经过质量分析和评审好的设计方案不仅能很好地支持当前需求的实现,而且能减小未来的系统维护(理解、修改、扩展)成本软件设计的任务软件分析模型软件系统各层次的设计方案数据/类设计:将分析-类模型变换成类的实现和软件实现所需要的数据结构体系结构设计:体系结构设计定义了软件的主要结构元素以及相互之间的关系接口设计:接口设计描述了软
3、件内部、软件和协作系统之间以及软件同人之间如何通信部件级设计:部件级设计将软件体系结构的结构性元素变换为对软件部件的过程性描述设计任务1—数据/类设计基础:在类和CRC中定义的数据对象和关系(实体及实体关系)以及数据字典中描述的详细数据内容(详细信息)数据设计的过程为在需求分析阶段所确定的数据对象选择逻辑表示确定对逻辑数据结构所必需的那些操作的程序模块设计任务2—体系结构设计定义软件的整体结构:软件部件、外部可见的属性和它们之间的关系体系结构设计:可以从系统规约、分析模型和分析模型中定义的子系统的交互导出设计任务3—接口设计接口设计主要包括
4、三个方面UI:用户和计算机间的接口(界面)和外部系统、设备、网络或信息生产者和消费者(比如外部实体)之间的接口外部系统接口:银行网上支付接口设备接口:读卡器、扫描枪、传感器接口信息接口:需要导入/导出的数据接口设计软件内部各个部件间的接口设计任务4—部件级设计部件级设计完整地描述每个软件部件的内部细节部件整体的处理和执行流程部件内本地数据对象的数据结构部件内处理过程的算法从类为基础的模型、流模型、行为模型中得到的信息是部件设计的基础软件设计的(质量)目标满足用户需求必须实现分析模型中所有的显式需求必须满足用户希望的所有隐式需求可读、可理解:
5、设计必须是可读、可理解的,使得将来易于编程、易于测试、易于维护全面性:应从实现角度出发,给出与数据、功能、行为相关的软件全貌衡量设计的技术原则-1分层的设计结构:从而建立软件系统的分层控制结构模块化:从逻辑上将软件划分为完成特定功能或子功能的部件数据与过程:设计既包含数据抽象,也包含过程抽象衡量设计的技术原则-2高内聚:建立具有独立功能特征的模块低耦合:尽量降低模块与外部环境之间的接口复杂度系统化/方法化:设计应能根据软件需求分析获取的信息,建立可驱动、可重复的方法软件设计的过程-1制定设计规范通过阅读系统需求说明书确定设计目标以及这些目标
6、的优先顺序设计方法:结构化、面向对象…设计文档的编制标准基本的实现规范:代码的信息形式、与硬件及操作系统的接口规约、命名规则软件设计的过程-2迭代展开、不断细化的系统设计体系结构和接口设计数据/类设计部件级(过程)设计编写设计文档设计评审内容摘要软件设计工程概述软件设计原则软件体系结构设计部件级设计技术设计规约与设计评审软件设计的基本原则抽象:考虑高层问题时忽略低层细节逐步求精:不断接近问题的完整解模块化:将系统划分为相对独立但又有所关联的多个部分信息隐藏:对其它模块隐藏内部细节模块独立:模块功能相对独立—高内聚/低耦合抽象控制复杂性的基本
7、策略抽象过程:从特殊到一般的过程,上层概念是下层概念的抽象,下层概念是上层概念的精化和细化软件开发过程的每一步都是对较高一级抽象的解作一次具体化的描述与实现无关的需求—考虑特定实现技术的设计、将每个模块逐一编码实现……过程抽象与数据抽象过程抽象:功能角度的抽象使用者将功能体作为单个功能看待这些功能实际上是由一系列更低级的功能或代码来实现的过程抽象例:函数、功能性的类/对象数据抽象定义数据类型和施加于该类型对象的操作限定了对象的取值范围,只能通过这些操作修改和观察数据例如面向对象的person类封装实际年龄,public接口上开放的是转换为老
8、年/中年/青年/少年…后的年龄段信息逐步求精常与分层抽象的思想相结合抽象——忽略低层的细节求精——揭示低层的细节高层抽象将在下层不断精化,最终得到软件实现模块化(分解)将系统划分
此文档下载收益归作者所有