好的代码来自好的设计 ·好的代码对环境友好 一好的代码会友好地对待软件环境,干净简明。 -不好的代码会造成软件环境污染。 好的设计才可能产生好的代码
好的代码来自好的设计 • 好的代码对环境友好 – 好的代码会友好地对待软件环境,干净简明。 – 不好的代码会造成软件环境污染。 好的设计才可能产生好的代码
复习:软件各阶段的任务 需求分析—What 一有哪些实体,如何抽象出属性,实体之间的 关系是什么 ·设计与实现—How -软件是怎么实现这些需求的 ·测试和发布—Whether 一软件实现了这些需求没有
复习:软件各阶段的任务 • 需求分析——What – 有哪些实体,如何抽象出属性,实体之间的 关系是什么 • 设计与实现——How – 软件是怎么实现这些需求的 • 测试和发布——Whether – 软件实现了这些需求没有
从需求到设计 ·张君和李丽想建一栋新房子。他们的需求如下: - 室内通水通电,冬天可取暖,夏天可制冷 一间主人卧房 一两个孩子有玩耍的空间,并拥有各自的睡房 一个厨房,一间书房 - 可临时容纳1-2位客人 ·设计师的方案: - 楼上设置三间睡房 - 楼下设置一间客房,一间厨房,一个玩具房,一间书房,一个 卫生间和一个客厅/餐厅 - 水电冷暖方案
从需求到设计 • 张君和李丽想建一栋新房子。他们的需求如下: – 室内通水通电,冬天可取暖,夏天可制冷 – 一间主人卧房 – 两个孩子有玩耍的空间,并拥有各自的睡房 – 一个厨房,一间书房 – 可临时容纳1-2 位客人 • 设计师的方案: – 楼上设置三间睡房 – 楼下设置一间客房,一间厨房,一个玩具房,一间书房,一个 卫生间和一个客厅/餐厅 – 水电冷暖方案
楼梯 楼梯 书房 客厅/餐厅 书房 卧室2 厨房 厨房 走廊 大门 走廊 大 卧室2 盥洗室 主卧室 客厅/餐厅 盥洗室 主卧室 与软件工程概念的映射 建筑结构概念 软件工程概念 构件 房间 子系统或模块 接口 门 服务 非功能需求 生活区 响应时间 功能需求 住房 用例(或用户故事) 返工代价 移动墙壁 改变子系统或模块的接口
软件设计要考虑的方面 设计者必须同时满足用户和开发人员的要求 一功能:最基本、最重要 -性能:运行速度,响应时间,占用空间 - 可靠:出错频率,修复能力 -成本:开发、移植、维护、用户培训 一维护:可扩展、修改、适应、移植、可读性 用户:效用、易用
软件设计要考虑的方面 • 设计者必须同时满足用户和开发人员的要求 – 功能:最基本、最重要 – 性能:运行速度,响应时间,占用空间 – 可靠:出错频率,修复能力 – 成本:开发、移植、维护、用户培训 – 维护:可扩展、修改、适应、移植、可读性 – 用户:效用、易用