软件设计是把许多事物和问题抽象起来,并且抽象它们不同的层次和角度。建议用数学语言来抽象事务和问题,因为数学是最好的抽象语言,并且它的本质就是抽象。将复杂的问题分解成可以管理的片断会更容易。将问题或事物分解并模块化这使得解决问题变得容易,分解的越细模块数量也就越多,它的副作用就是使得设计者考虑更多的模块之间耦合度的情况。
设计简介
软件设计即“…the process of applying various techniques and principles for the purpose of defining a device, a process or a system in sufficient detail to permit its physical realization. ”“ … 应用各种各样的技术和原理,并用它们足够详细的定义一个设备、一个程序或系统的物理实现的过程。 ”
对任意的工程产品或系统,开发阶段绝对的第一步是确定将来所要构建的制造原型或实体表现的目标构思。这个步骤是由多方面的直觉与判断力来共同决定的。这些方面包括构建类似模型的经验、一组引领模型发展的原则、一套启动质量评价的标准、以及重复修改直至设计最后定型的过程本身。计算机软件设计与其他工程学科相比还处在幼年时期,仍在不断变化中,例如更新的方法、更好的算法分析、以及理解力的显著进化。软件设计的方法论的出现也只有三十年多一点,仍然缺乏深度、适应性和定量性质,通常更多的与经典工程设计学科相联系。尽管如此,现今的软件技术已经存在、设计质量的标准也可使用、设计符号亦可以应用。带着这些意见,我们一起来看看什么有助于程序员们找到他们的软件涅盘 ( 天堂的意思 ) 。[1] 任务