UML和模式应用(一):面向对象分析和设计

Posted on 2008-02-10 22:40 Norvid 阅读(431) 评论(0)  编辑  收藏 所属分类: 读书笔记

基本概念

应该如何为对象类分配职责(responsibility)?对象之间应该如何协作?什么样的类应该做什么样的事情?这些都是系统设计中的关键问题。解决这些问题的一个设计方法是职责驱动设计(responsibility-driven design)

Scrum:由Ken Schwaber和Jeff Sutherland提出,旨在寻求充分发挥面向对象和构建技术的开发方法,是对迭代式面向对象方法的改进适用于需求难以预测的复杂商务应用产品的开发

Feature-Driven Development(FDD):由Jeff de Luca和Peter Coad提出,是一个模型驱动、短迭代的开发方法,适用于变换周期短的业务应用开发。所谓的特征点(Feature)时一些用户眼中有用的小功能项,一个特征点能在两周或更短的时间内被实施,且产生可见的、能运行的代码

Lean Development:这一思想诞生于20世纪40年代默契。当时由于缺乏足够的资金,刚成立不久的丰田公司制定了丰田生产系统,其主旨是消除浪费。该方法的原则是消除浪费、增加学习、尽量推迟决策、尽快交付、授权团队、潜入完整性和认识整体

在OO开发中,至关重要的能力是熟练地为软件对象分配职责

分析(analysis)强调的是对问题和需求的调查研究,而不是解决方案。如一个系统应该如何使用它?它应该具有哪些功能?

设计(design)强调的是满足需求的概念上的解决方案(软件、硬件两方面),而不是其实现。设计思想通常排斥底层或“显而易见”的细节。

有益的分析和设计可以概括为:做正确的事(分析)和正确地做事(设计)

面向对象分析(Object-oriented analysis)过程中,强调的是在问题领域内发现和描述对象(或概念)。如飞机、航班、飞行员等。

面向对象设计(Object-oriented design)过程中,强调的是定义软件对象以及他们如何协作以实现需求,即职责和协作。如对象有哪些属性以及方法。

面向对象分析关注从对象的角度创建领域描述,面向对象分析需要鉴别重要的概念。其分析结果可以表示为领域模型(Domain model),展示重要的领域概念和对象。领域模型也可以成为概念对象模型(conceptual object model)

顺序图(sequence diagram),描述协作的常见表示法,它展示软件对象之间的消息流,和由消息引起的方法调用

设计类图(design class diagram),描述类的属性和方法,从而展示类定义的静态视图

统一建模语言(UML)是描述、构造和文档化系统制品的可视化语言。

应用UML的三种方式:1)UML作为草图:非正式的、不完整的图,借助可视化语言的功能,用于探讨问题或者解决方案空间的复杂部分;2)UML作为蓝图:相对详细的设计图,用于逆向工程或者代码工程(即前向工程);3)UML作为编程语言:用UML完成软件系统可执行规格说明。

敏捷建模(Agile Modeling)强调了UML作为草图的方式,这也是使用UML的普通方式,而且通常对时间投入具有高回报。

应用UML的三种透视图:1)概念透视图:用图来描述现实世界或关注领域中的事物;2)规格说明透视图:用图来描述软件的抽象物或具有规格说明和接口的构件,但是并不约定特定实现;3)实现透视图:用图来描述特定技术(如Java)中的软件实现。

概念类(conceptual class):现实世界中的概念或事物。在概念或本质透视图中使用。

软件类(software class):无论在过程还是方法中,都表示软件构件在规格说明或实现透视图中的类。

实现类(implementation class):特定OO语言中的类。

小结

介绍了什么是面向对象的分析与设计,以及综述了UML和其可视化建模。


只有注册用户登录后才能发表评论。


网站导航:
 

posts - 0, comments - 9, trackbacks - 0, articles - 13

Copyright © Norvid