经典的软件工程思想将软件开发分成5个阶段:需求分析系统分析与设计;系统实现测试及维护五个阶段.
之所以如此,是因为软件开发中饣含了物和人的因素,存在着很大的不确定性,这使得软件工程不可能像理想
的,可以其于物理学等的原理来做的物质生产过程.
如想建造一幢高档的写字楼,那么刚开始便将一切材料和工具全准备好显然是无比愚蠢的行为,因为有可
能你正在使用他人的钱,而这些人将是建筑大小,开状和样式的决定者,通常情况下,投资方会在开工生改变想
法,这样你必须有额外的计划.而对于整个工程,你也许只是其中的某一个工作组,因此,你需要有各种各样的
图纸和模型同其他小组沟通,达到联合工作.很显然,在客户的需求与实际的建筑技术之间找好一个契合点,是
做好工程的关键.
许多软件工开发过程也如同上面例子一样,软件问题不仅仅是代码的问题,而成为了一个怎么样将整个过程
转变成一个结构,过程和工具相结合的问题.建模,即其目的和作用在于提供系统蓝图,包含细节设计,也含有对
系统的总体设计,同时模型可以帮助开发小组更好地规划系统设计,更快的开发.UML是一种功能强大的,面向对
象的可视化系统分析的建模语言,它的各个模型可以帮助开发人员更好地理解业务流程,建立更可靠,更完善的
系统模型.从而使用户和开发人员对问题的描述达到相同的理解,以减少语义差异,保障分析的正确性.
UML能够用来为系统进行面向对象建模,但是并没有指定应用UML建模的过程,它仅仅是一种语言,它是独
立于任何过程的。如果想要成功的应用UML一个好的过程是必要的。合理的过程能够有效的测度工作进度,控
制和改善工作效率。RUP是一个很好的软件过程,它的核心就是解决可操作性的问题,可以帮助开发人员完成
使用UML全程建模的问题。RUP虽好,但是RUP十分庞大对于一些小的项目实施起来比较困难。所以有很多人一
直在探讨敏捷建模的方法。