面向对象分析和设计(OOA/D)
up过程与瀑布模型;
a.软件职责分配;
--------------------------------------
1.uml不是OOA/D,也不是方法,它仅仅只是一种图形表示法;
2.如果没有对象思想,则uml或任何case工具都没有意义
3.我们需要一种用于OOA/D的语言,这既是一种思考工具,也是一种沟通的形式
4.因此,我们将在OOA/D中应用uml
5.分析(analysis):对问题和需求的调查研究
6.设计(design):满足需求的概念上的解决方案
7.面向对象分析(object-oriented analysis):在问题域内发现和描述对象
8.面向对象设计(object-oriented design):如何定义软件对象以及它们之间如何协作以实现
要求
----------------------------------------------------------
7.uml图形表示法:
例子:开发一个骰子游戏
如果总点数是7则赢得游戏,否则输;
过程:定义用例-->(用软件的时候怎么用它,就是用例,也就是先要确定目标)--->定义领域模
型(业务模型:游戏者,骰子)--->定义交互图(游戏者玩骰子游戏,骰子游戏包含骰子,游戏者投
掷骰子,骰子有什么属性,定义模型间的交互)--->定义设计类图
1.分配对象职责并绘制交互图:ood关注的是:软件对象的定义--职责与写作;
注意:职责是一种行为,行为是一种方法;
2.定义设计类图:填充类,从领域模型以及交互图获得启示.定义软件类,包括属性,方法等等,
比如有投掷方法,和获取点数方法,也就是有相应的职责;
3.骰子游戏的局部设计类图示例
4.骰子游戏的领域模型;相当于设计数据库,er图,他们之间的交互
------------------------------------------------------------------
1.什么是uml
标准定义:统一建模语言是描述构造和文档化系统制品的可视化语言;
uml:是一个庞大的图形化表示法体系
应用uml的三种方式:
草图
蓝图
编程语言
---------------------------------------------------
学习uml的要素:
表示法.图形
过程(uml与过程无关,但最好用于rup)
工具.(比如:Ratinal Rose);
有些公司不用:如果你在设计设计的不好的话,有一个脱节的过程;比如一个程序的话,前期设
计的话,可能随着编程的话,又会有变化,就不按照uml的设计来做了.
---------------
1.所以要在uml设计的时候:要从需要的时候应用,不应该做的太细,需要大体理 解
2.图在分析和设计的时候,指导开发
3.可能在开发过程中,需要画图,或者开发完之后,画uml图,这样为了后续维护 人员,便于维
护;
4.可以通过mba,模型驱动,生成代码;
5.比如只要写一个user的类图,就可以得到这个类的代码;uml图可以直接转换为代码;
6.可以根据与平台无关的模型,生成与平台有关的模型,然后生成代码;
7.画图形的工作:Ratinal Rose(不重要)
-------------------------------------------------------------------
1.UML:UP与瀑布模型
什么是up?
软件开发过程(sofware development process)描述了构造,部署以及维护软件的方式,统一
过程(the unified software development process)是一种流行的构造面向对象系统的迭代
软件开发过程,特别是,rational统一过程(Rational unified process rup)是对统一过程的
详细精化,并且已经被广泛采纳
up也可以引进其他方法中的有用的实践,比如极限编程(Extreme Programming,xp) xp中的
测试驱动开发(test-driven development) 重构(refactoring) 和持续集成(continuous
integration)等..
-------------------------------------------------
2.up中的构架,就是各种模型;用例:就是开发软件的目标;
3.迭代:表示一段时间段,一部分,一部分的做;要和用户交互,用户提出意见再 改.
增量式开发:慢慢的不断的增加软件扩展功能
4.什么是瀑布生命周期:试图在编程之前定义所有或大部分需求
而且通常用于编程之前创建出完整的设计;
试图在开始前定义可靠的计划或时间表
在开发的时候总会有不停的变化,但是瀑布模型就是想消除这种变化,在编程之前做好许多详
细设计;