软件设计是从软件需求规格说明书出发,根据需求分析阶段确定的功能设计软件系统的整体结构、划分功能模块、确定每个模块的实现算法以及编写具体的代码,形成软件的具体设计方案。
软件设计是把许多事物和问题抽象起来,并且抽象它们不同的层次和角度。将问题或事物分解并模块化使得解决问题变得容易,分解的越细模块数量也就越多,它的副作用就是使得设计者考虑更多的模块之间耦合度的情况。
非原创,感谢《领域驱动设计》这本书
为了保证软件实现得简洁并且与模型保持一致,不管实际情况如何复杂,必须运用建模和设计的最佳实践。领域驱动设计改变了某些传统观念的侧重点。某些设计决策能够使模型和程序紧密结合在一起,互相促进对方的效用。这种结合要求我们注意每个元素的细节。对细节问题的精雕细琢能够打造出一个稳定的平台。
下面的简图是一张导航图,它描述的是本部分所要讲解的模式以及这些模式彼此关联的方式。
共用这些标准模式可以使设计有序进行,也使项目组成员能够更方便地了解彼此的工作内容。同时,使用标准模式也使UBIQUITOUSLANGUAGE更加丰富,所有的项目组成员都可以使用UBIQUITOUSLANGUAGE来讨论模型和设计决策。
开发一个好的领域模型是一门艺术。而模型中各个元素的实际设计和实现则相对系统化。将领域设计与软件系统中的其他关注点分离会使设计与模型之间的关系非常清晰。根据不同的特征来定义模型元素则会使元素的意义更加鲜明。对每个元素使用已验证的模式有助于创建出更易于实现的模型。
只有在充分考虑这些基本原理之后,精心设计的模型才能化繁为简,创建出项目组成员可以放心地进行组合使用的详细元素。
软件设计包括软件的结构设计,数据设计,接口设计和过程设计。
结构设计是指:定义软件系统各主要部件之间的关系。
数据设计是指:将模型转换成数据结构的定义。
接口设计是指:软件内部,软件和操作系统间以及软件和人之间如何通信。
过程设计是指:系统结构部件转换成软件的过程描述。
上一篇:软件设计:大O
下一篇:软件开发——一个学习的过程