软件模块设计范文
功能模块的设计
1.提高功能模块独立性
在得到软件结构之后,就应首先着眼于改善功能模块的独立性,考验是否应该把一些功能模块提取或合并,力求降低耦合提高内聚。例如,多个功能模块共有的一个子功能可以独立成一个功能模块,由这些功能模块调用,有时可以通过分解或合并功能模块以减少控制信息的传递及对全局数据的引用,并且降低接口的复杂度。
2.功能模块规模适度
经验表明,当功能模块过大时,功能模块的可理解性就会迅速下降。但是对过大的功能模块分解时,也不应降低功能模块的独立性。因为当对一个大的功能模块分解时,有可能增加功能模块之间的依赖。
3.深度、宽度、扇出和扇入要适当
如果深度过大则说明有的控制模块可能简单了。如果宽度过大则说明系统的控制过于集中。而扇出过大则意味着功能模块过于复杂,需要控制和协调过多的下级模块,这时应适当地增加中间层次,扇出太小则可以把下级模块进一步分解成若干个子功能模块,或者合并到上级功能模块中去。一个功能模块的扇入是表明有多少个上级功能模块直接调用它,扇入越大则共享该模块的上级模块数目越多,这是有好处的。
4.要使模块的作用范围保持在该模块的控制范围内
功能模块的作用范围是指受该功能模块内一个判定影响的所有功能模块的集合。功能模块的控制范围是指这个功能模块本身以及所有直接或间接从属于它的功能模块的集合。在一个设计得很好的系统中,所有受判定影响的功能模块应该都从属于作出判定的那个功能模块,最好局限于做出判定的那个功能模块本身及它的直接下级模块。对于那些不满足这一条件的软件结构修改的办法是:将判定点上移或者将那些在作用范围内但是不在控制范围内的功能模块移植到控制范围内。
5.应减少功能模块的接口的复杂性和冗余度,并改善一致性
功能模块接口复杂是软件发生错误的一个主要原因。应该仔细设计模块接口,使得信息传递简单并且和模块的功能一致。
6.设计成单入口、单出口的功能模块,避免病态连接
要防止内容耦合性,如果功能模块都是从顶部入口、从底部出口的话,这样的软件也更易于理解和易于维护。病态连接关系是指从中部进入或访问一个模块。
7.模块的功能可预测
如果一个功能模块可以当做一个黑箱,即只要输入的数据相同就产生同样的输出,这个模块的功能就是可以预测的。而那些具有内部记忆的功能模块则可能是不可预知的,因为它可能记载了某个内部标志并且利用这个标志去选择处理方案。由于这个标志对上级功能模块来说是看不见的,因而可能引起混乱。
8.组装软件根据设计的约束和移植的需要
组装是指用来把软件组合起来,以便把软件放入特定的处理环境或送往其他的地方。有时,设计约束要求一个程序要在内存中覆盖自己。如果有这种要求的话,原设计结构就可能必须重新组织以便按照重复的次数、存取的频率以及各次调用之间的间隔来把功能模块组合起来。
总之,不管什么样的功能模块都有可能出现软件缺陷,主要类型有:软件没有实现产品规格说明所要求的功能模块;软件中出现了产品规格说明指明不应该出现的错误;软件实现了产品规格说明没有提到的功能模块;软件没有实现虽然产品规格说明没有明确提及但应该实现的目标;软件难以理解,不容易使用,运行缓慢,或从测试员的角度看,最终用户会认为不好。因此一定要重视软件功能模块的设计和软件测试的进行,这样才能从根本上保证软件质量。
求软件设计文档
我有一个 "详细设计说明书编写规范",是一个DOC的模板文件.如用得着请提供邮箱,我发给你.选择一段你瞧下:1 引言1.1 编写目的 说明编写这份详细设计说明书的目的,指出预期的读者范围。
1.2 背景说明:a. 待开发的软件系统的名称;b. 列出本项目的任务提出者、开发者、用户以及将运行该项软件的单位。1.3 定义 列出本文件中用到的专门术语的定义和缩写词的原词组。
1.4 参考资料列出要用到的参考资料,如:a. 本项目的经核准的计划任务书或合同、上级机关的批文;b. 属于本项目的其他已发表的文件;c. 本文件中各处引用的文件、资料,包括所要用到的软件开发标准。列出这些文件的标题、文件编号、发表日期和出版单位,说明能够得到这些文件资料的来源。
如何写模块的详细设计
详细设计的主要任务是设计
每个模块的实现算法、所需的局部数据结构
。详细设计的目标有两个:实现模块功能的算法要逻辑上正确和算法描述要简明易懂。
主要任务:1.为每个模块确定采用的算法,选择某种适当的工具表达算法的过程,写出模块的详细过程性描述;2.确定每一模块使用的数据结构;3.确定模块接口的细节,包括对系统外部的接口和用户界面,对系统内部其它模块的接口,以及模块输入数据、输出数据及局部数据的全部细节。
在详细设计结束时,应该把上述结果写入详细设计说明书,并且通过复审形成正式文档。交付给下一阶段(编码阶段)的工作依据。4.要为每一个模块设计出一组测试用例,以便在编码阶段对模块代码(即程序)进行预定的测试,模块的测试用例是软件测试计划的重要组成部分,通常应包括输入数据,期望输出等内容。
详细设计的工具:1.图形工具利用图形工具可以把过程的细节用图形描述出来。2.表格工具可以用一张表来描述过程的细节,在这张表中列出了各种可能的操作和相应的条件。3.语言工具用某种高级语言(称之为伪码)来描述过程的细节。
关于模块怎么样会让自己设计自己喜欢的模块啊 -
自定义新浪博客各处模板: 1)改变BLOG标题大小的代码: .banner .title td{font-size:36px;} .banner .title td{FILTER: glow(color=#000000,direction=2);} .banner .title td{color:#ffff66;} .banner table{background:#transparent;filter:alpha(opacity=85);border:0px solid #000;} 36px为标题文字的字体大小 #000000表示文字效果(显影)的颜,direction=2表示发光效果的强弱,数值可自行设定,自己觉得合适即可。
banner .title td{color:#ffff66;}表示标题文字的主颜色 banner table{background:#transparent; filter:alpha(opacity=85); border:0px solid #000;}这个是文字及其外框的设置:background:后面的值为标题外框的颜色效果;opacity=85是表示文字的透明度,值越小越透明;border:0px表示外框线条的粗细,数值越大边框线条越粗,数值设为0表示边框隐藏。 ---------- 2)页面宽度的代码: .bodyTop{width:900px;} .bodyBg{width:900px;} .bodyBottom{width:900px;} .feeds .text{width:660px;} .label{width:20px;} .photo{width:200px;} .callboard{width:200px;} .links{width:200px;} .calendar{width:200px;} .sysBr180{width:200px;} 参数说明: .bodyTop 指的是页面顶部的宽度,控制了 banner(就是题图)的宽度。
.bodyBg 指的是整个页面的宽度,其值最好与上者相同(也可以自行变化)。 .bodyBottom 指的是页面底部的宽度,其值最好是与上面相同 。
.feeds .text 指的是正文部分的宽度(也就是文章部分的宽度) 。 .label 指的是面板的宽度(其值加正文宽度的值应略小于整个页面的宽度)。
.photo 指的是形象照片面板的宽度(其值同上) 。 .callboard 指的是公告栏的宽度(其值同上) 。
.links 面板(也即最新留言、最新评论等面板)宽度(其值同上)。 .calendar 日历的宽度(其值同上)。
.sysBr180 这个值比较特殊,其值同以上各面板宽度近似,但不一定相同大家应当根据自己设置的宽度进行调节。 width 后面的数字就是你要修改的宽度值,可根据自己的需要设置。
面板的宽度值大约为190左右;如果要改成全屏,整个页面总宽度约为995-996。 不过要更改模板宽度的话建议面板的宽度不必改,只需用代码中的前四个参数就行了。
---------- 3)博客改变背景代码: 滚动的大背景代码: body {background:url("页面大背景图片地址") repeat scroll!important;} repeat 重复,当图片的大小不够的时候会以平铺显示 scroll 卷轴,大背景会随着右边滚动条拉动的时候而滚动 固定的大背景代码 body {background:url("页面大背景图片地址") repeat fixed!important;} fixed 固定,大背景不会因为你拉动滚动条而滚动 背景透明代码: body {background:#transparent) repeat scroll!important;} 使用说明: 找到你喜欢的图片(1024*768规格),把它存在你的博客里,具体方法参考无限制上传图片的方法然后把图片地址覆盖在代码中的("页面大背景图片地址")上面,找一个已经有内容的模块添加这段代码,就能改变你的BLOG背景了,具体用以上那一种代码,看你个人喜好了! ---------- 4)自定义博客各部分背景代码: .logo {background:url("题图上背景图片地址") no repeat no scroll!mportant;} .banner {background:url("题图下背景图片地址") no repeat no scroll!mportant;} .menu {background:url("题图下的菜单背景图片地址") no-repeat center;} .feeds .up {background:url("正文标题栏上翻时的图片地址") no-repeat center;} . wn{background:url("正文标题栏下翻时的图片地址") no-repeat center;} .feeds .function {background:url("正文摘要结尾处菜单的图片地址") no-repeat right;} .links .up {background:url("面板标题栏上翻时的图片地址");} . wn{background:url("面板标题栏下翻时的图片地址");} .links .mid {background:url("面板的背景图片地址");} .photo .mid {background:url(个人形象照片处的背景图片地址);} .label .mid {background:url("自定义面板的背景图片地址");} .calendar .mid {background:url("日历面板背景图片地址");} .callboard .up {background:url("公告栏标题栏上翻时的图片地址");} . wn{background:url("公告栏标题栏下翻时的图片地址");} .callboard .mid {background:url("公告栏背景图片地址");} .bodyBg {background:url("正文背景图片地址");} .bodyBottom {background:url("内背景页脚处图片地址,在翻页处下面一横窄条");} .gbook .up {background:url("留言板标题栏上翻时的图片地址") no-repeat;} . wn{background:url("留言板标题栏下翻时的图片地址") no-repeat;} . ge{background:url("正文文章页数图片地址") no-repeat center;} . re{background:url("最新文章列表下的MORE的背景图片") no-repeat right;} 代码说明: 页面大背景(body) 指的是整个博客的最大背景,由于中间部分被覆盖,所以显示的效果只是两边的部分。 题图上背景(logo) 是指所在的横长条的背景。
题图下背景(banner) 是指博客名字博客地址 复制 ?收藏本页)所在的那部分的背景。 logo和banner宽各为770,logo高。
模块设计属于-软件工程中的模块是什么?软件工程中模块是什么意思
软件工程中谈到的模块是指整个系统中一些相对对独立的程序单元,每个程序单元完成和实现一个相对独立的软件功能。
通俗点就是一些独立的程序段。 模块设计也叫详细设计,是系统设计阶段后续的一个软件开发阶段。
在系统设计阶段要把整个应用问题分解成一个个独立的功能部分--叫做程序模块。 每个程序模块要有自己的名称、标识符、接口等外部特征。
模块设计的结果是提交技术文档《模块设计说明书》。 不过模块的概念,在现代软件工程已经不多使用了,这大概是2代3代之前的概念。
模块概念后来发展成类和对象的概念,现在又发展到组件的概念。换句话说,现在不再叫模块设计,一般叫组件设计。
前些年叫类和对象设计。这些不止是名词的改变,更多的是软件工程的发展。
不过对象也好、组件也好它们都是一些独立的程序单元。