UML总结(二)

版权声明:我的四年啊! https://blog.csdn.net/sunshisiqi/article/details/79952292

前言

 最近刚学习了RUP,想总结一下。

概述

 RUP是一个统一软件开发过程,这个过程是面向对象且基于网络的程序开发。

 RUP的目标:能够在预定的进度和预算中提供高质量的满足最终用户的要求。

 RUP达到最佳实践的几种措施:迭代式开发。管理需求。使用构件架构。可视化建模。检验质量。控制变更。下面分别介绍一下这几种措施。

 迭代式开发:优点:降低风险。得到早期用户反馈。持续的测试和集成。适应变更。提高复用性。
 特征:在进行大规模的投资之前就解决了关键的风险问题。使得早期的用户反馈在初始迭代中就能出现。连续进行测试和集成。各个目标里程碑提供了短期的焦点(阶段性的中心)。可以对局部的实现进行部署。
 使用构件架构:优势:对体系结构进行自下而上的设计、实现和测试。用一种系统化的做法来定义好的体系结构。采用定义明确的接口来定义好的体系结构。采用定义明确的接口来使得变更有弹性。采用线程的和通过逆向工程得到的构件。由高级别的用例来驱动。易于直观上的理解。

特征

 RUP的基本特征:迭代式增量开发、用例驱动、以软件体系结构为中心。

延伸

设计模式与UML

 模式和框架的比较:模式支持软件结构和设计的重用。框架支持细节设计和代码的重用。两者结合起来,设计模式和框架有助于提高软件的质量。

 指导模式设计的三个概念:重用:是目标(两种重要的重用目标)。接口与实现分离(接口保持不变,分离带来灵活性。多态性)。Decouple(降低复杂性)。

 如何描述一个模式:模式名称、问题动机、约束、上下文、解决方案、评测、相关模式、举例。

 设计模式分类

 创建型模式

这里写图片描述

 结构型模式

这里写图片描述

 行为型模式

这里写图片描述

UML好文章系列二

04-08

从设计程序之初我就没有打算把建模让给别人去做,我这并不是自私,引用两句名言来说明我的观点:一拿破仑:“不想当将军的士兵不是好士兵”;二张五常先生的《经济解释》“要现实公司利益的最大化,必然使得能让公司最大化的人来当排头”。   我虽然没有从出生以来就开始注意建模,但也开始学习搭积木了,大家和我一样期待着成为软件模型的设计者,但是要怎么样做,又从那开始做呢?rn  在给UML栏目写东西的时候,我一直从事软件开发,是中国传统方式的操作—作坊式的,公司三五十来个人,连个软件小组都称不上。我虽然不是软件开发组的组长,但我是唯一的一个把文档整理好给别人的人。我告诉同事我的三个优点:我很会和客户打交道;我很会写一份详尽的文档;我很会整理,使得一件复杂的东西简单化。 rn一. 开始构想我们的软件rn  除了无用的哲学理论之外,我还不知道哪一件东西可以凭空产生。我们开发的软件是供别人使用,学过经济学人都知道经济开始的三个要素:为谁生产?生产什么?如何生产?rn  我们可以围绕这三个因素来开始谈论软件建模:rna:为谁生产rn  在软件的领域内我简单把该项过程考察为:软件的需求分析(在最近几期的《程序员》杂志上有高展先生的详细论述)。站在客户的角度(客户正是我们为之生产的对象),有两个方面的需求:一是该软件产品符合操作规范;二是该软件产品操作简单方便、界面友好。许多人都知道软件开发过程中的许多问题,都是由于收集、编写、协商、修改该软件产品的代码、文档(有的人把代码也列入文档)时由于失误、马虎、未确定或不明确等因素造成的。 我在软件工程上找到“客户”两个字的解释:是指直接或间接从产品中获得利益的个人或组织,包括提出要求、支付款项、具体说明或使用软件产品的项目风险承担者或是获得产品所产生的结果的人。rn  其实,客户的如此两个字并不能说明我们为谁生产的生产对象,作为软件的开发者已经很了解各个软件开发的差异性,假如说客户是机器(当然机器也是人操作的吗?),我们为之开发驱动程序、操作系统等;如果是商业使用我们为之做CRM、ERP等商务软件或与其相关的财务软件。如此说明就象我们是在建造商务楼还是在造民房。rn  当然为谁生产的本质并不重要,因为它们在实现起来是一样的。rnb:生产什么rn  没有不骂我是白痴的,讲了半天的软件了,还在问这是生产什么?rn  如此说法是正确的,但仔细一想就知道这个问题的答案还很难回答,虽然这是微软风格但也必须把它说明。rn在为谁生产的问题中已经有些说明了,生产什么,当然是用户说了算,我们生产什么,我告诉你:“我们生产用户所需要的”。但用户到底是需要什么?在软件的需求中我们赋予用户一些权利:可以要求软件使用客户语言规范;要求软件跟踪客户的系统业务目标;要求软件对产生结果或数据进行详细的说明;要求软件符合质量要求。rn  根据软件的种类我们来列举一大堆的例子分析说明我们软件开发者生产的是什么:操作系统啦、驱动程序啦或者媒体播放软件啦......rn  其实不然,我生产的是根据用户提出的软件设计的模板来进行软件生产。rnc:如何生产rn  先谈谈分析和设计的区别:“分析是一门科学,设计是一门艺术”,说话者的意思是在所有的“正确”分析模型中只存在一个最“正确”分析模型可以完全满足解决某个具体问题的需要;当然软件的建模也同样是合乎其理的。需求分析需要一丝不苟、精确的完成,而软件设计的时候反而可以发挥创造力和想象力,不然世界没有进步了。rn  在实际的操作过程中,软件的设计者(我还不能包括在内)常常遇到一个问题就是:对软件的理解在开发的过程中才愈来愈深,在设计的初期软件的设计者并没有对软件如此理解,如此便造成一种假象:好象是需求经常改动。其实不是,客户对待软件的需求并没有变,但由于交流或其他方式的接触,使得软件设计者对软件的理解加深了,我们改变了对需求的理解而不是需求变。rn  根据软件的需求,我们如此而知到软件开发的目的。rn  有了目标我们必须找一条路走过去,而这条路就是如何生产了。rn  首先,软件的设计不可避免的需要写文档,按照软件设计规范,软件文档有十三种,每一种对应于软件开发的一个时期(具体的内容以后再谈)。rn  其次,根据软件的文档开始编写代码,该代码就是软件的源代码,源代码的开发在目前的国内软件开发上还是占据主要的份额(其实这个问题在我身上基本上消失了)。rn  再,软件测试,具统计很少有人愿意干此类的活,虽然每个人都知道该项很重要,在前面的释义(二)我已经讲了心态的问题了。rn  最后,把开发好的软件放在有电源的设备,并为之添加硬件和软件的环境支持,使其运行。在运行的过程中进行软件维护。rn

没有更多推荐了,返回首页

私密
私密原因:
请选择设置私密原因
  • 广告
  • 抄袭
  • 版权
  • 政治
  • 色情
  • 无意义
  • 其他
其他原因:
120
出错啦
系统繁忙,请稍后再试