软件设计概念要点
1、什么是模块化设计?模块化是一种“分而治之,各个击破”式的问题求解方式,它降低了问题的复杂程度,简化了软件的设计过程。2、模块化设计的基础原理(软件工程设计原理)设C(x)是求解问题x的复杂程度的函数,E(x)解决问题x需要的工作量(时间)。对于两个问题P1和P2,如果C(P1)C(P2)显然有E( P1)E(P2)。但是, 若能将问题P分解成若干个独立子问题P1、P2 Pn时,则下列公式成立 E(P)E(P1)十E(P2)十十E(Pn) (1) 若能将问题P分解成若干个相关联的子问题P1、P2 Pn时,相关因子分别为i1、i2 i n ,则只有在相关因子比较小时,下列公式成立: E(P)E(P1)十E(P2)十十E(Pn) (2)这个原理阐述了一个“各个击破”的结论:1)若几个独立子程序可以完成一个大型程序的任务,那么设计几个子程序的代价比设计一个大型程序的代价更低。2)若几个相互关联的子程序可以完成一个大型程序的任务,那么只有这些子程序之间的相关因子较小时,设计几个子程序的代价才会比设计一个大型程序的代价低。3、 模块独立性的两个重要评价指标:模块内聚、模块间耦合 4、软件设计的目标之一就是: 构造尽可能松散耦合(耦合程度较低)的系统结构。模块之间的耦合程度将会影响到系统的可理解性、可测试性、可靠性和可维护性。总之,软件结构设计中应该遵循的原则是:优先使用数据耦合,尽量少用控制耦合,限制公共实体耦合的范围,禁用内容耦合。耦合和内聚的关联:耦合和内聚是密切相关的一对指标,模块的高内聚往往意味着模块间的低耦合。反之也是一样。实践表明,内聚比耦合更重要,应该把更多注意力集中到提高模块的内聚程度上。