您的位置:网站首页 > app开发 > 郑州app开发 > 正文

谈谈软件设计的概念与原则

作者:知网科技 日期:2020/6/17 人气:
标签:

  郑州软件公司今天来和大家谈谈郑州软件开发郑州软件定制生涯中的一些体会 有关软件设计的概念和原则

        经过多年发展,已经总结出一些基本的软件设计概念与原则,这些概念与原则已成为软件设计人员完成复杂设计问题的基础。主要内容包括:
       (1)将软件划分成若干独立成分的依据。
       (2)表示不同成分内的功能细节和数据结构。
       (3)统一衡量软件设计的技术质量。
   
        模块化与模块独立性
        1.模块化
        模块是数据说明、可执行语句等程序对象的集合。模块可以被单独命名,而且可通过名字来访问。例如,过程、函数、子程序和宏等都可作为模块。模块化的概念已经出现多年,软件系统的层次结构就是模块化的具体体现。模块化就是把程序划分成若干个模块,每个模块具有一个子功能,把这些模块集合起来组成一个整体,可以完成指定的功能,实现问题的要求。
   
        在软件开发过程中,大型软件由于控制路径多、涉及范围广而且变量数目多,使其总体更为复杂,这样与小型软件相比较就不易被人理解。模块化是为了使一个复杂的大型程序能被人的智力所管理。如果一个大型程序仅由一个模块组成,可理解性差。而由一个模块组成,可理解性可增强。下面描述上面所提出的结论。
         定义函数C(z)为问题z的复杂程度,函数E(z)为解决问题z需要的工作量(时间)o对于问题P,和问题P2,如
                   C(Pi)>C(P2)
          则有 E(Pi)>E(P2)
   
       因为由P,和P2两个问题组合而成一个问题的复杂程度大于分别考虑每个问题时的复杂程度之和。
       C(Pl+P2)>C(P1)+C(P2)
   
      综上所述,可得到下面的不等式:
      E(P1+P2)>E(P1)+E(P2)
   
       由此可知,把复杂的问题分解成许多容易解决的小问题,原来的问题也就容易解决了,这就是模块化提出的根据。    成本
       如图所示,如果无限地分割软件,
最后为了开发软件所需要的工作量也就小得   
可以忽略了。事实上,当模块数目增加时,
个模块的规模将减小,开发单个模块需要的
成本确实减少了。然而,设计模块间接口所                       
需要的成本将增加。根据这两个因素,得出
了图中的总成本曲线。每个程序都相应地有   
                                                                                                                                                               模块与软件耗费
一个最适当的模块数目M,使得系统的开发
成本最小,这也是计算机科学中的折中方法。
   
        虽然目前逐不能精确地确定M的数值,但是在考虑模块化的时候总成本曲线确实是有用的。采用模块化原理可以使软件结构清晰,不仅容易实现设计,也使设计出的软件的可阅读性和可理解性大大增强。这是由于程序错误通常发生在有关的模块及它们之间的接口中,所以采用模块化技术会使软件容易测试和调试,进而有助于提高软件的可靠性。因为变动往往只涉及少数几个模块,所以模块化能够提高软件的可修改性。模块化也有助于软件开发工程的组织管理,一个复杂的大型程序可以由许多程序员分工编写不同的模块。
   

        2.模块独立性
        模块独立性是指软件系统中每个模块只涉及软件要求的具体子功能,而且与其他的模块接口简单。例如,如果一个模块只具有单一的功能,并且与其他的模块没有太多的联系,那么称此模块具有模块独立性。模块独立的概念是模块化、抽象、信息隐蔽和局部化概念的直接结果。
   
        开发具有独立功能而且和其他模块之间没有太多相互作用的模块,就可以做到模块独立。换句话说,希望这样设计软件结构,使得每个模块完成一个相对独立的特定子功能,并且与其他模块之间的关系很简单。
   
        模块的独立程度可以由两个定性标准度量,这两个标准分别称为耦合和内聚。耦合衡量不同模块彼此间互相依赖的紧密程度;内聚衡量一个模块内部各个元素彼此结合的紧密程度。
   
       1)耦合
       耦合是对一个软件结构内各个模块之间互连程度的度量。耦合强弱取决于模块间接口的复杂程度、调用模块的方式以及通过接口的信息。
       在软件设计中应该尽可能采用松散耦合的系统。在这样的系统中可以研究、测试或维护任何一个模块,而不需要对系统的其他模块有很多了解和影响。此外,由于模块间联系简单,发生在一处的错误传播到整个系统的可能性就很小。因此,模块间的耦合程度强烈影响系统的可理解性、可测试性、可靠性和可维护性。
   
       具体区分模块间耦合程度强弱的标准如下。
      (1)非直接耦合。如果两个模块都能独立地工作而不需要另一个的存在,那么它们彼此完全独立,这表明模块间无任何连接,耦合程度最低。但是,在一个软件系统中不可能所有模块之间都没有任何连接,它们之间的联系完全通过主模块的控制和调用来实现。
    (2)数据耦合。如果两个模块彼此间通过参数交换信息,而且交换的信息仅仅是数据,那么这种耦合称为数据耦合。数据耦合是低耦合。系统中至少必须存在这种耦合,因为只有当某些模块的输出数据作为另一些模块的输人数据时,系统才能完成有价值的功能。一般来谠,一个系统内可以只包含数据耦合。
    (3)控制耦合。如果传递的信息中有控制信息,则这种耦合称为控制耦合,如下图所示。控制耦合是中等程度的耦合,增加了系统的复杂程度。通常把模块适当分解之后,可以用数据耦合代替控制耦合。
    (4)公共环境耦合。当两个或多个模块通过一个公共数据环境相互作用时,它们之间的耦合称为公共环境耦合。公共环境可以是全程变量、共享的通信区、内存的公共覆盖区、任何存储介质上的文件、物理设备等。
    公共环境耦合的复杂程度随耦合的模块个数而变化,当耦合的模块个数增加时,复杂程度显著增加。如果只有两个模块有公共环境,那么这种耦合有下述两种可能(如下图所示)



                                             


(())
顶一下
参与讨论
姓名: 验证码:看不清楚,换一个
最新评论

联系我们

软件开发: 15838307519(司经理)

网络营销: 13676968269(王经理)

网络建设: 13073737771(郭经理)

24小时服务电话: 0371-56683330

了解更多APP开发

+好友