联系越多,耦合性就越高,而其模块独立性就越弱。内聚是模块功能强度(一个模块内部各个元素彼此结合的紧密程度)的度量。一个模块内部各个元素之间的联系越紧密,则它的内聚性就越高,相对地,它与其他耦合就会减低,而模块独立性就越强。因此,模块独立性比较强的模块应是高内聚低耦合的模块。
内聚性指一个模块内部各成分彼此结合的紧密程度,耦合性是程序结构中各个模块之间相互关联的度量。内聚和耦合是相互关联的。人们总是希望一个模块的内聚类型向高的方向靠,模块的内聚在系统的模块化设计中是一个关键的因素。如果一个软件的模块只实现一个功能,那么该模块具有高内聚性。高内聚性的软件更容易维护和改进。判断一个模块是否有高的内聚性,看一看你是否能够用一个简单的句子描述它的功能就行了。如果你用了一段话或者你需要使用类似"和"、"或"等连词,则说明你需要将该模块细化。在程序结构中各模块的内聚程度越高,模块间的耦合程度就越低。但这也不是绝对的。软件概要设计的目标是力求增加模块的内聚,尽量减少模块间的耦合,但增加内聚比减少耦合更重要,应当把更多的注意力集中到提高模块的内聚程度上来。并且用参数在过程之间传递数据,虽然模块级变量的问题不像全局变量那么多,但是我们也应该尽量避免使用模块级变量。一般来说,变量的作用域越小越好。为了减少模块级变量和全局变量,方法之一是将数据作为参数在不同过程之间传递,而不是让过程共享全局变量或模块级变量。例如为每个参数指定数据类型。这个问题应该给予充分的重视。创建带有参数的过程时,请务必将每个参数明确说明为一个特定的数据类型。[10]
系统中4个模块分别管理不同的变量,常量、私有变量、全局变量分地很清楚。类模块的成员变量与对应的表中的字段名相同,清晰可见。
结论
经过三个月的设计与开发,毕业设计信息网络管理系统基本开发完毕。其功能基本符合用户需求,能够完成毕业信息的存储和相关资料的查询以及各类相关功能的实现。并提供部分系统维护功能,使用户方便操作数据的备份和恢复以及删除。对于数据的一致性的问题也通过程序进行了有效的解决。但是由于毕业设计时间较短,所以该系统还有许多不尽如人意的地方,比如联机文档比较少,对毕业设计具体步骤相关信息考察不够等多方面问题。这些都有待进一步改善。
通过该系统的研制,使得作者对计算机有了一种新的体验:追求实用才是学好计算机的关键。任何一门技术都要以能够解决实际工作中出现的问题为依据和评判优劣的基本依据。还有就是设计程序本身需要面向对象外,程序的最终使用一定也要"面向对象。由于国内计算机技术的使用还不是非常普及,很多的人还是建立在能打开计算机和使用最基本的软件的平台上,那么我们设计的软件就要充分结合这些基本软件,立足在这些基本软件上作些基本的改进,让使用人员很容易的接受并产生兴趣,使得我们的软件能够快速产生生产力,这样的工作要求,是最基本的要求。对不同层次和不同的要求,均要有不同的设计。任何事情我们不能一定要追求一种将所有的事情在一个系统里面都能够解决的结果,这样作的行为只会导致我们最终一事无成或推迟成果的出世。哲学的观点和自然科学的方法论也没有这样的要求,任何技术都是不断进步的,任何成果都是要在不同的时期补充新鲜的东西才能有生命里的。我们需要做的就是不断的补充完善最初的成果,不断的将新的知识补充到我们的设计软件之中,这样才能更好地服务工作和社会。另外,在使用参考书籍的过程中,资料作者有很多的精湛的细节值得认真学习。
本文所做的主要工作:
(1)介绍高校毕业设计网络选题系统的需求及发展情况。
(2)介绍本系统设计应用平台及创作工具。
(3)讲述本系统统计设计理念及具体设计情况。
(4)讲解本系统具体制作方法及核心代码。
(5)叙述本系统的优点与不足,对尚未解决的问题提出参考解决方法。
今后进一步研究的方向:
(1)对页面进行美化,重新设计UI,使得页面更易于让人接受。
(2)增加数据转换接口,使得本系统能与高校管理系统数据库进行无缝连接。
(3)添加系统功能,将选题系统扩展成完整的毕业设计管理系统,对毕业设计过程进行全程管理。
(4)对数据结构及代码进行优化,使得系统运行更加加速稳定,降低服务器资源占用。
参考文献
[1]李晓喆 张晓辉 李祥胜.SQLServer2000管理及应用系统开发.第1版.北京:人民邮电出版社,2005
[2]DaividBuser,JohnKauffman.ASP初级编程[M].第1版.北京:机械工业出版社,2001
[3]李晓黎张巍.ASP+SQLSERVER网络应用系统开发与实例[M].第1版.北京:人民邮电出版社,2004
[4]梁景红.网页设计与网页设计配色[M].第1版.北京:人民邮电出版社.2005年
[5]刘启芬顾韵华.SQLServer实用教程[M].第2版.北京:电子工业出版社.2005年7月
[6]郭瑞军李杰.ASP数据库开发实例精粹[M].第1版.北京:电子工业出版社.2005年2月
[7]萨师煊王珊.数据库系统概论[M].第1版.北京:清华大学出版社.1998年7月
[8]于鹏.VBSCRIPT/ASP网页设计语言教程[M].第1版.北京:电子工业出版社.2004年
[9]汪晓平钟军.ASP网络开发技术[M].第1版.北京:人民邮电出版社.2004年
[10]龚小勇.关系数据库与SQLServer2000[M].第1版.北京:机械工业出版社.2004年
附录
代码如下:
<%@LANGUAGE="VBSCRIPT"CODEPAGE="936"%>
选报题目结果|毕业设计选题系统
<%
DimPWD
DimID
PWD=Request.Form("textfield1")
ID=Request.Form("hiddenField1")
Dimconn
Setconn=Server.CreateObject("ADODB.RecordSet")
conn.ActiveConnection="DSN=hw;UserID=sa"
conn.Source="select*fromdbo.studentwherestu_id='"&session("student")&"'"
conn.CursorType=0
conn.LockType=1
conn.Open()
ifconn("stu_pass")=PWDthen
ifconn("stu_works")="0"then
Dimconn2
Setconn2=Server.CreateObject("ADODB.RecordSet")
conn2.ActiveConnection="DSN=hw;UserID=sa"
conn2.Source="select*fromdbo.workswhereworks_id='"&ID&"'"
conn2.CursorType=0
conn2.LockType=1
conn2.Open()
ifconn2("works_state")=2then
conn2.close()
conn2.Source="updatedbo.workssetworks_state=3whereworks_id='"&ID&"'"
conn2.CursorType=1
conn2.LockType=3
conn2.Open()
conn.close()
conn.Source="updatedbo.studentsetstu_works='"&ID&"'wherestu_id='"&session("student")&"'"
conn.CursorType=1
conn.LockType=3
conn.Open()
Response.Write("选题成功,点击这里刷新您的信息")
else
Response.Write("此课题已经被选报,您无法选报这个题目,点击此处浏览所有可选课题")
endif
Setconn2=Nothing
else
Response.Write("您已经选报过题目,若要重新选题,请先放弃您原来选报的题目点击这里刷新您的信息")
endif
else
Response.Write("密码输入错误,请返回重新输入如果当前用户不是您,请勿为别人选题,请关闭浏览器重新登录")
endif
Setconn=Nothing
%>