2011年11月6日

UML和模式应用学习笔记(10)——使用GRASP的对象设计示例

摘要: 最近一段时间工作比较忙,好久没有学习了。今天硬逼着自己学习了一会儿。直接进入主题。。。 GRASP是一组模式或原则吗?GRASP定义了9个基本OO设计原则或基本设计构件,其描述的是原则而不是模式。模式是一种优秀的学习工具,可以用来命名、表示和记忆那些基本和经典的设计思想。 GRASP的9个模式:创建者(Create)控制器(Controller)是UI层之上的第一个对象,它负责接收和处理系统操作消息。纯虚构(Pure Fabrication)信息专家(Information Expert)高内聚(High Cohesion)间接性(Indirection)低耦合(Low Couplin... 阅读全文

posted @ 2011-11-06 15:08 Daywei 阅读(819) 评论(0) 推荐(0)

2011年9月24日

UML和模式应用学习笔记(9)——GRASP:基于职责设计对象

摘要: UML与设计原则 由于UML只是一种标准的、可视化建模语言,了解它的细节并不能教会你如何用对象思想来思考,而对象思想正是此文的主题。UML有时候被描述成一种“设计工具”。最关键的软件开发工具是受过良好设计原则训练的思维,而不是UML或任何其他技术。 OO设计总得来说,是基于职责驱动设计(RDD)所代表的内在含义是考虑怎样给协作中的对象分配职责。 职责和职责驱动设计 思考软件对象设计以及大型构件的流行方式是考虑其职责、角色和协作。这是被称为职责驱动设计的大型方法的一部分。在RDD中,我们认为软件对象具有职责,即对其所作所为的抽象。UML把职责定义为“类元的契约或义务”。就对象的角色而... 阅读全文

posted @ 2011-09-24 16:48 Daywei 阅读(2532) 评论(2) 推荐(2)

2011年9月4日

UML和模式应用学习笔记(8)——交互图和类图

摘要: UML使用交互图来描述对象间通过消息的交互。交互图可以用于动态对象建模。交互图有两种类型:顺序图和通信图。顺序图通信图顺序图与通信图的优点和缺点 顺序图在某些地方优于通信图。UML规范更多是以顺序图为核心,采用顺序图可以更方便的表示调用流的顺序,仅需要由上至下阅读即可。而对于通信图,我们必须查阅顺序编号(由于使用visio不熟通信图的美画好,顺序号没有标出)。--------------------------------------------------------------------------------------------------------------------... 阅读全文

posted @ 2011-09-04 16:47 Daywei 阅读(2605) 评论(0) 推荐(1)

2011年8月4日

UML和模式应用学习笔记(7)——迈向对象设计

摘要: 开发者如何设计对象?一般采用如下三种方式:编码。在编码的同时进行设计(java、C#、---),更为理想的是使用诸如再工程(refactoring)这样的强大工具。根据想象的模型直接编码。绘图,然后再编码。在白板或UML CASE工具中绘制一些UML,然后转到第一种方式,使用文本增强型集成开发环境(IDE,如Eclipse或Visual Studio)进行编码。只绘图,不编码。使用工具从图中生成一切。“只绘图”是不当之词。因为实际上还是会在UML图形元素上附加文本的编程语言。 一些敏捷建模的目标是减少常用图形,建模的目的是为理解和沟通而不是构建文档。可以尝试简单的敏捷建模方法——“UML草图. 阅读全文

posted @ 2011-08-04 14:54 Daywei 阅读(1754) 评论(1) 推荐(0)

2011年8月3日

UML和模式应用学习笔记(6)——系统顺序图、系统操作和层

摘要: 系统顺序图(SSD)并非是UML中的顺序图,是为阐述与所讨论系统相关的输入和输出事件而快速、简单地创建的制品。 系统顺序图表示的是,对于用例的一个特定场景,外部参与者产生的事件,其顺序和系统之内的时间。所有的系统被视为黑盒。此图强调的是从参与者到系统的跨越系统边界的事件。 准则:应为每个用例的主成功场景,以及频繁发生的或者复杂的替代场景绘制SSD。 为什么要绘制SSD呢? 软件设计中一个有趣且有用的问题是:我们系统中会发生什么事件?为什么?因为我们必须为处理和响应这些事件(来自于鼠标、键盘、和其他系统---)来设计软件。基本上,软件系统要对以下三种事件进行响应:1)来自于参与者(人或计算机). 阅读全文

posted @ 2011-08-03 13:08 Daywei 阅读(3628) 评论(2) 推荐(0)

2011年7月11日

UML和模式应用学习笔记(5)——领域模型

摘要: 领域模型(domain model)是对领域内的概念类或现实世界中对象的可视化表示。领域模型也称为概念模型、领域对象模型和分析对象模型。 在UP中,术语“领域模型”指的是对现实世界概念类的表示,而非软件对象的表示。该术语并不是指用来描述软件类、软件架构领域层或有职责软件对象的一组图。UP对领域模型的定义是可以在业务建模科目中创建的制品之一。更准确地讲,UP领域模型是UP业务对象模型的特化。 如何创建领域模型 以当前迭代中所要设计的需求为界: 1)寻找概念类 2)将其绘制为UML类图中的类 3)添加关联和属性。 什么是概念类?如何找到概念类? 通俗的说,概念类是思想、事物或对象。更正式的讲,概. 阅读全文

posted @ 2011-07-11 13:47 Daywei 阅读(1262) 评论(0) 推荐(0)

2011年7月2日

UML和模式应用学习笔记(4)——用例

摘要: 用例是文本形式的情节描述。用以说明某参与者使用系统以实现某些目标。用例不是图形,而是文本。很多人包括我在内常见的错误就是注重次要的UML用例图,而非重要的用例文本。 定义:参与者、场景和用例 首先,给出几个通俗的定义。参与者(actor)是某些具有行为的事物,可以是人(由角色标识)、计算机系统或组织。场景(scenario)是参与者和系统之间的一系列特定的活动和交互,也称为用例实例(use case instance)。场景是使用系统的一个特定情节或用例的一条执行路径。通俗的讲,用例(use case)就是一组相关的成功和失败场景集合,用来描述参与者如何使用系统来实现其目标。例如:处理退货—. 阅读全文

posted @ 2011-07-02 11:07 Daywei 阅读(840) 评论(0) 推荐(0)

2011年6月28日

UML和模式应用学习笔记(3)——需求阶段

摘要: 其实在需求阶段之前有个初始化阶段。初始化阶段是建立项目共同设想和基本范围的比较简短的起始步骤。为了在随后的细化阶段能够开始编程,它将包括对10%的用例进行分析、关键的非功能需求的分析、业务案例创建和开发环境的准备。主要有一下几点: 1)项目的设想和业务案例是什么? 2)是否可行? 3)购买还是开发? 4)粗略估计一下成本 5)项目应该继续下去还是停止? 想要定义设想并大致得出所需的预算,就必须研究需求。但是,初始化阶段的目标并不是定义所有的需求,或产生可信的预算或项目计划。 这是一个关键点,当我们叠加了固有的“瀑布”思维时会重蹈对UP(统一过程)项目的误解。UP不是瀑布,初始化作为UP的第一. 阅读全文

posted @ 2011-06-28 10:55 Daywei 阅读(860) 评论(0) 推荐(0)

2011年6月25日

UML 和模式应用学习笔记(2)——关键步骤

摘要: 关键步骤如下:定义用例 需求分析可能包括人们如何使用应用的情节或场景,这些情节或场景可以被编写成用例(use case)。用例不是面向对象制品,而只是对情节的记录。但用例是需求分析中的一种常用工具。定义领域模型 面向对象分析关注从对象的角度创建领域描述。面向对象分析需要鉴别重要的概念、属性和关联。面向对象分析的结果可以表示为领域模型(domain model),在领域模型中展示重要的领域概念或对象。 需要注意的是,领域模型并不是对软件对象的描述,它使真实世界领域中的概念和想象可视化。因此,它也称为概念对象模型(conceptual Object model)。分配对象职责并绘制交互图 面向对象 阅读全文

posted @ 2011-06-25 16:56 Daywei 阅读(624) 评论(0) 推荐(0)

2011年6月24日

UML和模式应用学习笔记(1)——UML与OOD/A

摘要: UML 统一建模语言,是标准的图形表示法。UML并不是OOA/D,也不是方法,它只是图形表示法。需要真正理解面向对象。UML就是我们需要用于OOA/D和“软件蓝图”的语言。它就是一种思考的工具,也是一种沟通的形式。 引用:统一建模语言(UML)是描述、构造和文档化系统制品的可视化语言。应用UML的三种方式: UML作为草图——非正式的、不完整的图,借助可视化语言的功能,用于探讨问题或解决方案空间的复杂部分。 UML作为蓝图——相对详细的设计图,用于:1)逆向工程,即以UML图的方式对现有代码进行可视化,使其易于理解。2)前向工程,即代码生成。 UML作为编程语言——用UML完成软件系统可执行. 阅读全文

posted @ 2011-06-24 14:07 Daywei 阅读(1124) 评论(0) 推荐(1)

导航

技术追求卓越 梦想创造未来