- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第1章 面向对象的分析与设计Object Oriented Analysis and Design 课程的主要内容 良好的面向对象设计意味着什么? 掌握OOA/D的核心技能! 在OOA/D中应用UML和设计模式。 使用统一过程的敏捷方法。 应用UML UML(Unified Modeling Language, 统一建模语言)是标准的图形表示法。它只是一个工具,不是OOA/D,也不是方法。 懂得UML可以帮助你与其它人在软件设计方面进行交流。 本课程的重点是学习OOA/D的思想,而不是如何画UML图。 本课程也探讨如何在OOA/D中应用 UML。 分配职责 OOA/D中最重要的技巧是为对象分配职责,这决定了对象之间如何协作,什么样的类该做什么的事情。 采用OOD的原则和模式进行职责驱动(Responsibility-driven design)的设计 设计模式 某些针对设计问题的,经过反复验证的解决方案可以(和已经)被表示成为最佳实践的原则、、启示或设计模式(Design Patterns) 设计模式是问题解决方案公式化,这些公式是系统化的、典范的设计原则。 需求分析 所有的软件分析和设计都是由需求分析开始的。 良好设计的一个基本原则是尽可能将决策推后。在决策之前知道得更多,更可能做出好的决策。 TFCL: Think First, Code Later! 用例(Use Cases) 用例是文本形式的情节描述,用以说明某参与者使用系统以实现某些目标。 在需求分析中通常会编写用例。 编写用例并不是特定于面向对象的实践。但它是细化和理解需求的最佳实践。所以本课程会研究用例。 统一过程(Unified Process,UP) 软件开发过程描述了构造、部署以及维护软件的方式。 统一过程已经成为一种流行的构造面向对象的迭代软件开发过程。 UP是通用的,并且是被公认的最佳实践。 本课程中,将UP作为学习内容之一。 其它相关技术 本课程只涉及软件技术的一个子集。 其它一些技能和步骤,包括编程、可用性工程、用户界面设计和数据库设计等。 分配职责 OOD的“荒岛”技能是熟练地为对象分配职责。它是一项既难以掌握又至关重要的技能。 9项为对象分配职责的基本原则,合称为GRASP 模式。 GRASP 是 General Responsibility Assignment Patterns的缩略词。 什么是分析? 分析 “分析”一个含义广泛的词汇。在软件开发中,我们关注两种类型的分析。 需求分析:调查研究系统要成功所必须满足的需求。 面向对象分析:调查研究领域对象以发现重要信息来满足需求。 什么是设计? 设计 设计强调的是满足需求的概念上的解决方案(在软件或硬件方面)。设计不是实现,虽然一个好的设计在完成后可以被(编程)实现。 “设计”一词含义也很广泛,应加以限定,如:架构设计,对象设计,数据库设计等。 分析与设计 分析 做正确的事。(确定做什么事?) 设计 正确地做事。(怎样把确定的事情做好?) 什么是面向对象的分析? 面向对象的分析(Object Oriented Analysis,OOA)强调的是在问题域内发现和描述对象(或概念)。 如,在图书馆信息系统中,包含书籍、书库、借阅者等概念。 什么是面向对象的设计? 面向对象的设计( Object Oriented Design ,OOD)强调的是定义软件对象以它们是如何协作以实现需求。 在图书馆信息系统中,“书”这个软件对象,可以有“title”属性和“getChapter”方法。 实现 在实现(Implementation)或面向对象程序设计( Object-Oriented Programming,OOP)过程中,会实现设计出来的对象。如, Java中的“book”类。 实现又称为“编程”(Coding)或构建(Construction) 航空领域的例子 OOA/D的简单示例-骰子游戏 软件模拟游戏者掷两个骰子,如果总点数是7则赢得游戏,否则为输 定义用例(需求阶段) 需求分析可能包括人们使用应用的情节或场景,这些情节或场景可以被编写成用例。 用例是需求分析的一种常用工具。 骰子游戏的用例 骰子游戏:游戏者请求掷骰子。系统展示结果:如果骰子总点数是7,则游戏者赢,否则游戏者输。 定义领域模型(OOA阶段) OOA关注从对象的角度创建领域描述。 OOA需要鉴别领域内重要的概念、属性和关联 OOA的结果可以表示为领域模型(domain model) 领域模型并不是对软件对象的描述,它是真实世界领域中概念和想象可视化,又称为概念模型(conceptual object model) 分配对象职责并绘制交互图(OOD) OOD关注的是软件对象的定义——它们的职责和协作 顺序图(sequence d
文档评论(0)