软件工程(总体设计②设计原理)

本文探讨了软件工程中的设计原理,包括模块化、抽象、逐步求精、信息隐藏和局部化以及模块独立性。模块化是将程序划分为独立命名的模块,每个模块实现一个子功能。抽象是解决问题的关键,通过忽略不重要的细节,逐步求精将复杂问题分解为可管理的部分。信息隐藏和局部化有助于创建独立的模块,减少错误传播。耦合和内聚是衡量模块独立性的指标,低耦合和高内聚的模块更易于设计、测试和维护。
摘要由CSDN通过智能技术生成

设计原理

模块化

模块是由边界元素限定的相邻程序元素的序列,而且有一个总体标识符代表它。

按照模块的定义,过程、函数、子程序和宏,都可作为模块。

面向对象方法学中的对象是模块,对象内的方法也是模块。模块是构成程序的基本构件。

模块化就是把程序划分成独立命名且可独立访问的模块,每个模块完成一个子功能,把这些模块集成起来构成一个整体,可以完成指定的功能满足用户的需求

当模块数目增加时每个模块的规模将减小,开发单个模块需要的成本确实减少了,但是,随着模块数目的增加,设计模块间接口所需要的工作量也将增加,根据这两个因素,得出图中的总成本曲线。

每个程序都相应地有一个最适当的模块数目M,使得系统的开发成本最小,虽然目前还不能精确地决定M的数值,但是在考虑模块化的时候总成本曲线确实是有也的指南。

采用模块化原理可以使软件结构清晰,不仅容易设计也容易阅读和理解。

抽象

人类在认识复杂现象的过程中使用的最强有力的思维工具是抽象。人们在实践中认识到,在现实世界中一定事物、状态或过程之间总存在着某些相似的方面(共性)。把这些相似的方面集中和概括起来,暂时忽略它们之间的差异,这就是抽象。或者说抽象就是抽出事物的本质特性而暂时不考虑它们的细节

由于人类思维能力的限制,如果每次面临的因素太多,是不可能产生精确思维的。处理复杂系统的唯有效的方法是用层次的方式构造和分析它。一个复杂的动态系统首先可以用一些高级的抽象概念构造和理解.这些高级概念又可以用一些较低级的概念构造和理解,如此进行下去,直至最低层次的具体元素。

这种层次的思维和解题方式必须反映在定义动态系统的程序结构之中,每级的一个概念将以某种方式对应于程序的一组成分。当考虑对任何问题的模块化解法时,可以提出许多抽象的层次。在抽象的最高层次使用问题环境的语言,以概括的方式叙述问题的解法;在较低抽象层次采用更过程化的方法,把面向问题的术语和面向实现的术语结合起来叙述问题的解法;最后,在最低的抽象层次用可以直接实现的方式叙述问题的解法。

软件工程过程的每一步都是对软件解法的抽象层次的一次精化。在可行性研究阶段,软件作为系统的一个完整部件:在需求分析期间,软件解法是使用在问题环境内熟悉的方式描述的:当由总体设计向详细设计过渡时,抽象的程度也就随之减少了;最后,当源

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值