******,建模的目标
#1, 便于开发人员展现系统。
#2, 允许开发人员指定系统的结构或行为。
#3, 提供指导开发人员构造系统的模板。
#4, 记录开发人员的决策。
建模不是负责系统的专利,小的软件开发也可以从建模中获益。但是,越庞大复杂的项目,建模的重要性越大。开发人员之所以在复杂的项目中建立模型,是因为没有模型的帮助,他们不可能完全地理解项目。
通过建模,人们可以每次将注意力集中在一起,这使得问题变得容易。这就是Edsger Dijkstra提出的“分而治之”的方法:通过将问题分割成一系列可以解决的,较小的问题来解决复杂问题。
******,建模四个原则
#1,选择建立什么样的模型对如何发现和解决问题具有重要的影响。换句话说,就是认真选择模型。正确的模型有助于提高开发者的洞察力,指导开发者找到主要问题,而错误的模型会误导开发者将注意力集中在不相关的问题上。
#2, 每个模型可以有多种表达方式。假设你正在建一栋高楼,有时你需要一张俯视图,以使参观者有一个直观的印象。有时你又需要认真考虑最底层的设计,例如铺设自来水管或者电线。相同的情况也会在软件模型中出现,有时你想要一个快速简单的,可实行的用户接口模型,其他时候你又不得不进入底层与二进制数据打交道。无论如何,使用者的身份和使用的原因是评判是评判模型好坏的关键。分析者和最终的用户关心“是什么”,而开发者关心“怎么做”。所有的参与者都想在不同的时期,从不同的层次了解系统。
#3, 最好的模型总能够切合实际。一栋高楼的物理模型如果只有有限的几个数据,那么它不可能真实地反映现实的建筑,一架飞机的数学模型如果只考虑理想的飞行条件和良好的制造技术,那么很可能掩盖真实飞行中的致命缺陷。避免以上情况的最好办法就是让模型与现实紧密联系。所有的模型都是简化的现实,关键的问题是必须保证简化过程不会掩盖任何重要的细节。
#4, 孤立的模型是不完整的。任何好的系统都是由一些几乎独立的模型拼凑出来的。就像建造房子一样,没有一张设计图可以包括所有的细节。至少楼层平面图,电线设计图,取暖设备设计图和管道设计图是需要的。而这里所说的“几乎独立”是指每个模型可以分开来建立和研究,但是他们之间依然相互联系。就像盖房子 一样,电线设计图可以独立存在,但是在楼层平面图甚至管道图中仍然可以看到电线的存在。