软件设计基础;内容;1.1何为软件设计?;何为软件系统的解决方案?;示例:“小米便签”的软件实现解决方案;从需求到设计和编码;1.2需求分析、软件设计、软件实现间的关系;软件设计是需求分析和软件实现间的桥梁;思考和讨论;1.3设计的多样性和差异性:质量;软件设计的质量要求;高质量软件设计的特点;思考和讨论;1.4软件设计过程;软件设计过程–软件体系结构设计;示例:分层的软件体系结构;软件设计过程–用户界面设计;软件设计过程–软件详细设计;示例:软构件及接口设计;示例:类设计;软件设计过程–其它工作;思考和讨论;1.5三类软件设计元素;软件设计元素之间的关系;示例:软件设计元素;内容;2.1软件设计要考虑的因素;2.2软件设计的基本原则;1.抽象原则;软件设计抽象层次的变化;示例:体系结构层次的设计抽象;示例:构件层次的设计抽象;2.模块化、高内聚度和低耦合度原则;高内聚度原则;低耦合度原则;;3.信息隐藏原则;信息隐藏示例;4.关注点分离原则;5.软件重用原则;6.软件设计的其它原则;内容;何为软件设计方法?;3.1结构化软件设计;结构化软件设计的输出结果;结构化软件设计方法的输入、输出和方法;数据流图的形式;将数据流图映射为软件体系结构图的方法;3.1.1变换流的映射方法–输入;示例:变换型的数据流图;步骤1:确定输入流、输出流和变换流;示例:划定流界;步骤2:执行一级分解;示例:一级分解得到的软件体系结构粗胚;步骤3:执行二级分解;示例:二级分解得到的软件体系结构;示例:二级分解得到的软件体系结构;步骤4:优化软件体系结构;示例:优化软件体系结构;3.1.2事务流的映射方法–输入;示例:事务型的数据流图;步骤1:确定事务中心和动作路径;示例:划定事务型数据流图的流界;步骤2:执行一级分解;步骤3:处理事务中心和每条路径的数据流图;示例:映射事务处理中心和每条路径;步骤4:优化软件体系结构;示例:优化软件体系结构;结构化软件设计方法的特点;3.2面向对象软件设计方法学;面向对象软件设计方法学;面向对象软件设计过程;面向对象软件设计建模-包图;面向对象软件设计建模-顺序图;面向对象软件设计的优势(1/2);面向对象软件设计的优势(2/2);3.3软件设计的CASE工具;3.4软件设计工程师;内容;4.1软件设计的输出;4.2软件设计文档规范及其内容;4.3软件设计中的缺陷;4.4软件设计的评审;4.5软件设计的管理;拓展阅读;课后作业和课程实训;本章知识图谱;小结;综合实践一;综合实践二;问题和讨论