- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第10节面向对象设计
NO.* Web 界面布局 NO.* 固定宽度vs. 可变宽度 NO.* 界面中的颜色 颜色能够改善用户界面,帮助用户理解系统的复杂信息结构,有时颜色可以用于突出显示例外事件。 使用颜色的指导原则 避免使用太多的颜色(通常一个窗口内不要多于三种颜色) 使用颜色编码支持用户的任务 允许用户控制颜色编码 使用颜色编码时需要前后一致 使用颜色的变化显示系统状态的变化 注意在低分辨率情况下的颜色显示 注意颜色的搭配 NO.* 界面中的颜色 NO.* 动态变化的信息窗口 NO.* 用户支持 用户界面应该提供清晰的系统提示和反馈信息,并提供某种形式的在线帮助。 错误信息 错误信息描述应当是简洁的、礼貌的、一致的和建设性的 设计错误信息时应该预见到用户的背景和经验 帮助系统 帮助系统应该提供给用户多个不同的入口 帮助系统具有复杂的网络结构,从其中的每一个帮助页面都可以访问其他的信息页面 帮助系统不应该是用户手册的简单复制 NO.* 用户界面的评价 一般情况下,应该基于可用性属性进行界面的评价。 可用性属性 NO.* * * * * * * * NO.* 识别设计元素 NO.* 识别设计元素 识别子系统接口 在确定了设计元素之后,需要描述子系统的行为,也就是准确定义接口操作的集合。同时,还要确定“子系统接口”与其他设计元素之间的依赖关系。 NO.* 数据存储策略 数据文件 数据文件是由操作系统提供的存储形式,应用系统将数据按字节顺序存储,并定义如何以及何时检索数据。 关系数据库 在关系数据库中,数据是以表的形式存储在预先定义好的成为Schema 的类型中。 面向对象数据库 与关系数据库不同的是,面向对象数据库将对象和关系作为数据一起存储。 NO.* 数据存储策略 何时选择文件? 存储大容量数据、临时数据、低信息密度数据 何时选择数据库? 并发访问要求高、系统跨平台、多个应用程序使用相同数据 何时选择关系数据库? 复杂的数据查询 数据集规模大 何时选择面向对象数据库? 数据集处于中等规模 对象间没有规则联系 NO.* 部署子系统 部署图反映了系统中软件和硬件的物理架构,表示系统运行时的处理节点以及节点中组件的配置。 MiniLibrary系统的部署图 NO.* 检查系统设计 检查“正确性” 每个子系统都能追溯到一个用例或一个非功能需求吗? 每一个用例都能映射到一个子系统吗? 系统设计模型中是否提到了所有的非功能需求? 每一个参与者都有合适的访问权限吗? 系统设计是否与安全性需求一致? 检查“一致性” 是否将冲突的设计目标进行了排序? 是否有设计目标违背了非功能需求? 是否存在多个子系统或类重名? NO.* 检查系统设计 检查“完整性” 是否处理边界条件? 是否有用例走查来确定系统设计遗漏的功能? 是否涉及到系统设计的所有方面(如硬件部署、数据存储、访问控制、遗留系统、边界条件)? 是否定义了所有的子系统? ?检查“可行性” 系统中是否使用了新的技术或组件?是否对这些技术或组件进行了可行性研究? 在子系统分解环境中检查性能和可靠性需求了吗? 考虑并发问题了吗? NO.* 详细设计 详细设计需要细化分析和系统设计产生的模型,确定新的设计对象,消除问题域与实现域之间的差距。 详细设计模型可以分割成类的集合,通常由单个开发人员实现。 详细设计的主要任务 精化类的属性和操作 明确定义操作的参数和基本的实现逻辑 明确定义属性的类型和可见性 明确类之间的关系 整理和优化设计模型 NO.* 详细设计 边界类的设计策略 用户界面设计因素 用户界面的开发工具 所创建的界面数量 外部系统接口类 实体类的设计策略 考虑性能需求对实体对象的影响 控制类的设计策略 是否真正需要?是否应该继续细分? 考虑复杂性、变化适应性、分布性和性能、事务处理等要求 NO.* 定义操作 定义操作的过程 找出满足基本逻辑要求的操作 补充必要的辅助操作 初始化类的实例 验证两个实例是否等同 …… 完整地描述操作 确定操作的名称、参数、返回值、可见性等 应该遵从程序设计语言的命名规则 简要说明操作的内部实现逻辑 NO.* 定义操作 举例:BorrowerInfo类 构造函数 class + new ( ) 属性赋值 + setName( name:String) + setAddress( address:String) 其他 + addLoan( theLoan:Loan) + removeLoan( theLoan:Loan) + isAllowed( ) : Boolean …… NO.* 定义属性 定义属性 具体说明属性的名称、类型、缺省值、可见性等 基本原则 将所有属性的可见性设置为private; 仅通过set 方法更新属性; 仅通过get 方法访问属性; 在属性的set
文档评论(0)