网站地图
3936.net
学霸百科 没有你查不到的
软件结构

「官网地址0365.tv」-「永久地址0365.tv」

软件结构(Software Structure)是指一种层次表况,由软件组成成分构造软件的过程、方法和表示。软件结构主要包括程序结构和文档结构。程序结构有两层含义,一是指程序的数据结构和控制结构;另一是指由比程序低一级的程序单位(模块)组成程序的过程、方法和表示。在后者含义下,具有代表性的是块结构和嵌套结构两种。块结构比较自然,各个部分之间通过一些公用变量取得联系,嵌套结构是在嵌套分程序的基础上引进局部性和动态性,以减少程序的初始信息量,嵌套结构不如块结构直观,调试不方便。

所谓模块,是指具有相对独立性的,由数据说明,执行语句等程序对象构成的集合。程序中的每个模块都需要单独命名,通过名字可实现对指定模块的访问。在高级语言中,模块具体表现为函数,子程序,过程等,一个模块具有输入/输出(接口)、功能、内部数据和程序代码四个特征。输入/输出用于实现模块与其他模块间的数据传送,即向模块传入所需的原始数据及从模块传出得到得到结果数据。功能指模块所完成的工作。模块的输入/输出和功能构成了模块的外部特征。内部数据是指仅能在模块内部使用的局部量。

有些程序是单模块结构,有些是多模块结构。这些模块在程序的逻辑上是不可分离的,可以用不同的程序设计语言编写,可以由相应的编译程序分别编译,可以和其它的程序单位组合并装入计算机内运行。由于编写大程序的需要,且模块可以多次使用,实行模块化是一个很好的手段。 由一组模块组成的大型程序可有三种结构,即顺序结构、并发结构和分布结构。顺序结构的程序是最古老的,所采用的程序设计语言是顺序程序设计语言,如ALGOL、FORTRAN、C等。并发结构的程序由若干个可以同时执行的模块组成。这些模块可以在多台处理机上并行执行,也可以在同一台处理机上交叉执行,所采用的程序设计语言是并发程序设计语言,如并发PASCAL、Modula-2等。分布结构的程序由若干个可独立运行的模块组成,这些模块可以分布于一个分布式系统中,在几台计算机上同时运行,所采用的程序设计语言是分布式程序设计语言。对于大型程序,也可以是这三种结构的混合。

(1)模块功能的完善化

执行规定功能部分;出错处理部分;需返回给调用者数据时,返回是否正确结束标志。

(2)消除重复功能

(3)将模块的影响限制在模块的控制范围内

(4)深度、宽度、扇出和扇入适中

(5)模块大小适中

模块过大:可理解程度下降。模块过小:开销大于有效操作系统接口复杂。

(6)降低模块接口的复杂性

接口传递信息应简单且和模块功能一致。

(7)模块功能可预测

模块看成黑盒子,相同输入产生相同输出,其功能为可预测的。模块带有内部状态其功能可能是不可预测的。难理解、难测试、难维护。

(8)避免模块的病态连接

防止指向模块中间的分支或引用(针对内容耦合)。

(9)根据设计约束和可移植性要对软件打包

打包指用来为特定环境组装软件的技术。

目录结构清楚,不宜过深,复杂,路径最好用相对地址

什么样的目录放什么样的内容,这样便于管理,使WEB程序的目录结构,清楚明了,一看便知道某个文件夹下存储了哪些功能模块与内容。若随便存放,时间一长久自己都将不从了解某目录是用来做什么的。如:经常要使用的可执行文件最要存放在(项目根目录)根目录,这样做主要是便于了解其作用,同时也为在程序中少输入些地址字符。程序所用到的图片统一存放在根目录下images目录中,若项目较大,分枝较多,可再在其目录下建立也分枝程序相关的目录名,存储相关的图片内容。程序的配置文件与常用共公函数类库存放在include目录中,存放在此目录下的函数类库文件扩展名得命名为:.php切不命名为.inc .ini之类为扩展名的文件,主要是防此此类文件可供用户下载,或查阅其源码内容,这样对其调用方便明确。模板文件应存储在根目录下templates目录中,扩展名为.html,如果项目较大,分类较多,模板文件可分类存放在下极目录中。临时文件存储在根目录tmp目录中,此目录通常设置为任何人都可读可写。使用相对地址主要是方便程序移植。

命名最好是以程序用来作什么用来命名。若一个单词就要描述则用小写单词来命名,若要用多个单词方能代表,也以小写单词之间加下划线连接。要注意命名不可过长,这样就不方便了,虽然能表达的更明确,但打字难打啊。程序中函数命名也可与此相同。

常变内容、界面使用模板较好,如果是按照传统的制作将HTML页面内容放在程序中处理输入时,较麻烦非得要更改程序不可,这可能会带来较大的不便。

共公信息统一存储,这主要为了方便团队开发时都能进行调用用的最常的函数,不用每个开发人员都复制一份或自己写一份存储在程序文件中,这样做浪费空间同时效率效果也不好。

Include文件不可嵌入较多,这是因为每次程序include某个文件时,是要打开读取这个文件的,这是要时间的哦,再就是说处理路径时可能会遇到较难发现的BUG问题。

如果文件较多较大时最好是分目录分盘符来处理。

数据结构要设计合理、精简明了。

数据校验应在服务器端,但这样做也有他不好之处,那就是当数据量大时,服务器会负载运行,审核数据完整性是可开销时间与系统资源的。在客户端就不会占用服务器太多的资源,因为占用的是用户的资源。

尽晚连接,尽早断开连接,能使占用系统资源最少,为下一次连接提供条件。

尽量少使用SESSION与COOKIE,因为使用SESSION是要占用系统资源的,SESSION是存储在服务器端的,每次读取SESSION中的数据是要较大开销的。COOKIE虽然不占用服务器资源,但COOKIE不太安全。