登陆注册
8724600000015

第15章 软件设计(1)

4.1软件设计概述

需求分析结束之后,已经明确目标系统要做什么了,此时进入了设计阶段,需要解决“怎么做”的问题。对于设计,可以给出如下的严格定义,“应用各种技术和原理,对设备、过程或系统作出足够详细的定义,使之能够在物理上得到实现”。软件设计衔接着需求分析和软件构造,是承上启下的关键环节。同需求分析一样,设计方法主要也是两大类,结构化设计(Structured Design)和面向对象的设计(Object Oriented Design)。传统结构化的方法中将软件设计分为两个明显的阶段:概要设计和详细设计。

结构化方法认为,最终的软件通过程序体现,而程序可以理解为数据结构加算法,所以结构化方法认为整个设计阶段主要完成软件系统两方面的描述:一是系统的静态描述,也就是系统的结构设计和数据设计或者是数据结构的设计。二是系统动态方面的描述,也就是系统的过程设计。其中,系统结构和数据的设计主要是概要设计阶段要完成的内容,过程的设计则是详细设计阶段要完成的内容。

随着软件设计不断发展,很多新的理念不断出现,对读者来说,值得参考。最近网上比较流行“设计已死”,这是对传统的软件工程方法提出全新的挑战。所谓设计已死,事实上是一种比较偏激的说法,但本质上说明设计精简及设计简单化已成为了当今的趋势,这一趋势事实上是由软件环境的多变而决定的。另一种相似的理念认为,代码就是最好的设计,虽然偏激,却也有一定的合理性。对于这些新的理念,本书只做简单介绍,希望能够拓展读者的思路。在设计精简这一大趋势下,最新的一些设计方法并不严格区分设计的两个阶段,特别是使用UML进行面向对象分析的时候。在使用UML进行面向对象的设计时更强调实际的软件系统的描述效果。在面向现代企业环境的软件设计中,需要考虑的因素更为复杂。

Pressman将软件设计分为4大部分,分别是数据设计、体系结构设计(又称为架构设计)、接口设计、过程设计。

数据设计,主要描述了系统数据结构的设计。这一内容主要包括两部分:一是从需求分析阶段的实体关系图得到数据库的模式以及子模式的设计,如可以将某一ER图转换为关系模式,也就是设计出表和表之间的关系;另一方面是软件具体实现时的相关算法所涉及的数据结构的设计。

体系结构的设计,在很多不同的软件工程教材上都有不同的说法,本文认为,现代软件体系结构的设计主要可以从两个方面来理解。一是从纵向角度来观察软件系统的结构,主要是系统模块结构的设计。如在常见的企业管理信息系统中,按照企业的各部门职能可以得到的系统模块结构图(详见本章的后续章节)。另一方面的内容主要是从横向角度来观察软件系统的结构,这主要是分层的软件体系结构设计。如常按照用户交互、商业规则、数据访问这几项主要功能将软件分为3层。在后面的内容将详细介绍。

接口设计主要完成软件内部之间交互的接口,软件与人交互的设计。特别是软件与人的交互设计,也就是人机交互,或者人机工程学,越加引起人们的重视,可以说它将成为软件工程领域一个新的热点。人机交互(Computer Human Interaction,CHI),国际上也称(Human Computer Interaction,HCI),主要研究人与机器的交互,它是一门相当综合的新兴学科。它的研究内容很广,包括心理学领域的认知科学,心理学,软件工程领域的系统构架技术,信息处理领域的语音处理技术和图像处理技术,人工智能领域的智能控制技术等。关于人机交互,读者可以参考其他专业类书籍,本书对此不作详细描述。过程设计又称为构件设计,是通过定义数据结构、接口和算法进行软件过程的设计。在结构化方法中,最常见的就是用数据流程图来描述过程设计(详见本章后面的内容)。

4.2架构设计

4.2.1概述

关于软件架构的一个重要概念是分层,通常软件通过分层来达到灵活的发展。如操作系统和其他软件的分离、中间件的概念、网络的7个层次等。目前软件架构中一个比较重要的层次概念就是表现、逻辑、数据的分离。

4.2.2常见的软件架构C/S,B/S,B/A/S,C/A/S及多层体系架构

1.C/S模式

C/S又称Client/Server,或客户/服务器模式。服务器通常采用高性能的PC、工作站或小型机,并采用大型数据库系统,如Oracle、Sybase、Informix或SQL Server。客户端需要安装专用的客户端软件。C/S模式是一种两层结构的系统:第一层是在客户机系统上结合了表示与业务逻辑;第二层是通过网络结合了数据库服务器。

2.B/S模式

B/S是Brower/Server的缩写,客户机上只要安装一个浏览器(Browser),如Netscape Navigator或Internet Explorer,服务器端安装Oracle、Sybase、Informix或SQL Server等数据库。浏览器通过Web Server同数据库进行数据交互。

B/S模式是一种三层结构的系统。第一层客户机是用户与整个系统的接口。客户的应用程序精简到一个通用的浏览器软件,如Netscape Navigator,微软公司的IE等。浏览器将HTML代码转化成图文并茂的网页。网页还具备一定的交互功能,允许用户在网页提供的申请表上输入信息,提交给后台,并提出处理请求,这个后台就是第二层的Web服务器。

第二层Web服务器将启动相应的进程来响应这一请求,并动态生成一串HTML代码,其中嵌入处理的结果,返回给客户机的浏览器。如果客户机提交的请求包括数据的存取,Web服务器还需与数据库服务器协同完成这一处理工作。第三层数据库服务器的任务类似于C/S模式,负责协调不同的Web服务器发出的SQ请求,管理数据库。

3.C/A/S,B/A/S模式

C/A/S,B/A/S模式是由前两种结构演化而来的,就是加上了一个中间层,这个中间层可以专门处理企业的业务逻辑和其他的应用。其中中间层可以放在客户端,也可以放在服务器端,当然也可以单独出来。这样当应用层改变时,完全可以不用改动客户端和服务器端,因为企业应用变化比较大的就是业务逻辑的变化,这样改动就不会影响到其他层,或使影响最小化。现在有许多中间件技术,如微软的Com/Dcom技术,Corba技术及RMI(远程方法调用)等,许多公司也开发了一些这方面的软件,如IBM的WEBSPHERE、BEA的weblogic等。

4.2.3各自的优缺点

1.C/S模式

首先,交互性强是C/S固有的一个优点。在C/S中,客户端有一套完整的应用程序,在出错提示、在线帮助等方面都有强大的功能,并且可以在子程序间自由切换。B/S虽然由JavaScript、VBScript提供了一定的交互能力,但与C/S的一整套客户应用相比是太有限了。

其次,C/S模式提供了更安全的存取模式。由于C/S是配对的点对点结构模式,采用适用于局域网、安全性比较好的网络协议(如NT的NetBEUI协议),安全性可以得到较好的保证。而B/S采用点对多点、多点对多点这种开放的结构模式,并采用TCP/IP这一类运用于Internet的开放性协议,其安全性只能靠数据传输加密和数据服务器上管理密码的数据库来保证。INTERNET技术中关键的安全问题远未解决,其中信息传递过程中的加密和身份验证是关键性任务运用INTERNET技术的最大障碍,这就是现阶段INTERNET技术的主要应用仍停留于公开发布信息为主的原因。现代企业需要有开放的信息环境,需要加强与外界的联系,有的还需要通过Internet发展网上营销业务,这使得大多数企业将他们的内部网与Internet相连。由于采用TCP/IP,他们必须采用一系列的安全措施,如构筑防火墙,来防止Internet的用户对企业内部信息的窃取以及外界病毒的侵入。

再次,采用C/S模式将降低网络通信量。B/S采用了逻辑上的3层结构,而在物理上的网络结构仍然是原来的以太网或环形网。这样,第一层与第二层结构之间的通信、第二层与第三层结构之间的通信都需占用同一条网络线路。而C/S只有两层结构,网络通信量只包括Client与Server之间的通信量。所以,C/S处理大量信息的能力是B/S所无法比拟的。

最后,由于C/S在逻辑结构上比B/S少一层,对于相同的任务,C/S完成的速度总比B/S快,这使得C/S更利于处理大量数据。

C/S的优点是能充分发挥客户端PC的处理能力,很多工作可以在客户端处理后再提交给服务器。对应的优点就是客户端响应速度快。

缺点主要有以下几个:

只适用于局域网。而随着互联网的飞速发展,移动办公和分布式办公越来越普及,这需要系统具有扩展性。对于这种方式,要实现远程访问需要专门的技术,同时要对系统进行专门的设计来处理分布式的数据。客户端需要安装专用的客户端软件。首先涉及到安装的工作量,其次任何一台电脑出问题,如病毒、硬件损坏,都需要进行安装或维护。特别是有很多分部或专卖店的情况下,不是工作量的问题,而是路程的问题。还有,系统软件升级时,每一台客户机需要重新安装,其维护和升级成本非常高。对客户端的操作系统一般也会有限制。可能适应于Windows98,但不能用于Windows2000或Windows XP,或者不适用于微软新的操作系统等,更不用说Linux、UNIX等。

2.B/S模式

首先,它简化了客户端。它无须像C/S模式那样在不同的客户机上安装不同的客户应用程序,而只需安装通用的浏览器软件。这样不但可以节省客户机的硬盘空间与内存,而且使安装过程更加简便。

其次,B/S特别适用于网上信息发布。受限于HTML语言交互性差的问题,输入输出的用户界面不能用纯INTERNET技术规范HTML/HTTP解决,因为INTERNET WWW技术的主要应用是发布信息而不是输入输出,“浏览器”是用于“浏览”而非终端输入输出。

所以为了解决浏览器和HTML页面交互性差的问题,“B/S”版软件往往在客户端采用微软独家支持的ACTIVEX技术,这其实是一个由浏览器启动的客户端程序。

B/S最大的优点就是可以在任何地方进行操作而不用安装任何专门的软件。只要有一台能上网的电脑就能使用,客户端零维护。系统的扩展非常容易,只要能上网,再由系统管理员分配一个用户名和密码,就可以使用了。甚至可以在线申请,通过公司内部的安全认证(如CA证书)后,不需要人的参与,系统可以自动分配给用户一个账号进入系统。

企业MIS系统开发已发展到大量应用Web Server的新技术阶段,但一般的业务生成工具分为Browser/Server、Client/Server两种模式,尽管各种模式的产品在拥有自身优势的同时,也有一定的不足。对于用户来讲,对客户端应用程序要求越来越高,既要求保持原有客户端程序的操作方便性,又要求具有Web界面风格。虽然在某种意义上,一些开发商在客户端程序上嵌入IE界面,但是客户端程序处理功能却比原来的C/S结构的客户端程序处理功能大大降低,还是没有解决IE界面对业务的笨拙处理,不具备灵活性和人性化。

3.C/A/S及B/A/S的优缺点

首先,这两种结构是从上面两种结构演化而来,在原有的基础上又有许多其他优点。其次,中间层的概念可以使许多企业复杂的业务独立出来,将来无论对于软件的变化或升级都比较方便。由于中间层可以独立进行部署,这样就把部署的复杂性进行了分离。

4.2.4关于软件体系结构的选取

在进行软件体系结构设计的时候,通常可以采取的结构是C/S和B/S,及C/A/S情况,下面对这些情况分别加以比较和讨论。

传统的C/S结构表面上存在的主要问题是维护烦琐,其实这个问题在“胖”客户/应用/服务结构中也存在,因为客户总得去更新界面。而采用B/S的话,在做许多应用时又会显得“底气不足”。这也是目前B/S方式主要用在电子商务上的原因之一。

同类推荐
  • 中文版3dsMax2010实例与操作

    中文版3dsMax2010实例与操作

    本书结合3dsMax2010的实际用途,按照系统、实用、易学、易用的原则,通过大量案例介绍了3dsMax2010的各项功能,内容涵盖3dsMax入门、创建和编辑二维图形、创建基本三维模型、使用修改器、网格建模、多边形建模、面片建模、复合建模、材质和贴图、灯光和摄影机、渲染、动画制作、粒子系统、空间扭曲和动力学等。
  • 综合应用软件设计

    综合应用软件设计

    本书是为计算机、信息管理等相关专业高年级本科生在开设相关课程时所编写的一本教学参考书,它将全面指导学生学习、熟悉和运用当今被广泛采纳的一些主流技术去进行综合应用软件设计的有效实践。
  • 三维动画审美谈

    三维动画审美谈

    数字时代,美的标准充满更多的不确定性。而三维动画以数字图像形式成为这个图时代的代表。三维动画及三维图像不仅仅是由于应用了仿真数字图像技术而带来的虚拟空间,还有更多的是由三维图像技术所引发或引导的被扩展的图像技术,这些技术无不应用在现代视觉设计领域的各个方面,并且,由此引起社会的追热,引起审美观念的改变。这些改变是在进行中的,变化中的,也是在发展中的。对于未知的美,我们做的只是追寻和记录,我们不知道以后的美将会是什么样,尽管我们苦苦追寻,孜孜探讨,同时也在默默审视。我们在追寻中享受美,在探讨中认知美,在审视中体验美……
  • 数字博物馆研究与实践:2009

    数字博物馆研究与实践:2009

    本书汇集了“2009年北京数字博物馆研讨会”与会代表提交的60余篇论文和演讲报告、应用案例,分为数字博物馆(科技馆)发展研究探讨、数字博物馆(科技馆)多样性发展模式、数字技术在博物馆(科技馆)展陈中的应用、数字博物馆(科技馆)建设实践、数字博物馆(科技馆)实现技术和数字博物馆调研报告等六个部分。本书内容囊括了对数字博物馆(科技馆)建设宏观层面的全局思考以及微观层面的具体实践。在宏观层面,介绍了数字博物馆(科技馆)在国内外的发展现状与趋势,通过剖析典型案例,探讨数字博物馆(科技馆)建设的意义、目标、作用、建设原则、要素、特征及目前建设工作中存在的现实问题与对策。
  • 天下一家:网络联通世界(科学新导向丛书)

    天下一家:网络联通世界(科学新导向丛书)

    《天下一家:网络联通世界》一书从网络的基本知识出发,详细地介绍了网络科技的发展与用途,还包括校园网络对普及教育的重大作用。本书内容翔实、结构清晰、图文并茂,是一本实用性极强的网上冲浪参考书。
热门推荐
  • 江湖刀帝

    江湖刀帝

    鸣鸿刀本是轩辕黄帝的黄金剑余料,可它有了自由的意识,自发地流向炉底,冷却后而成天下大杀器。它拥有强大的刀意,就算是黄金剑也不能够奈何它。林轩就像他的鸣鸿刀,意志强大,就算是天下白道欲毁他,他也会傲气而战,刀霸天下,江湖称帝。
  • 有一种选择叫放弃

    有一种选择叫放弃

    本书共分四部分,内容包括:给心灵洗个澡、名人的心情料理、珍惜身边的情感和向快乐许个愿等。通过一个个小故事告诉你,学会放弃,是一种积极的人生态度,有时,成功就在于善于放弃不必要的东西。
  • 天行

    天行

    号称“北辰骑神”的天才玩家以自创的“牧马冲锋流”战术击败了国服第一弓手北冥雪,被誉为天纵战榜第一骑士的他,却受到小人排挤,最终离开了效力已久的银狐俱乐部。是沉沦,还是再次崛起?恰逢其时,月恒集团第四款游戏“天行”正式上线,虚拟世界再起风云!
  • 这么近,那么远

    这么近,那么远

    窗外不远处的一颗樱花树下,一位少年坐在地上,倚靠着树干,安详的闭着眼。她踏着微风,轻轻地走到了樱花树下。眼前是一位英俊的少年。从此,少年就再也没有从她的心里消失过。
  • 天行

    天行

    号称“北辰骑神”的天才玩家以自创的“牧马冲锋流”战术击败了国服第一弓手北冥雪,被誉为天纵战榜第一骑士的他,却受到小人排挤,最终离开了效力已久的银狐俱乐部。是沉沦,还是再次崛起?恰逢其时,月恒集团第四款游戏“天行”正式上线,虚拟世界再起风云!
  • 腹黑老公等等我

    腹黑老公等等我

    一次意外的邂逅,让他对她产生了浓烈的兴趣。“帅哥,帮我个忙呗!”面对她的热情似火,他却只是给予冷眼相待。“你这人怎么这样啊,冷冰冰的,一点人情味儿都没有。”面对她的恳求,他从不当面同意,只在暗中帮忙,为的也只是……
  • 前期与后期:困境中的生命意识(立斋文存)

    前期与后期:困境中的生命意识(立斋文存)

    《前期与后期》是清华大学国学院刘东教授以独特视角研究思想史,深刻反思当今人文学科学术状况之作。刘东教授认为,对于人文学者来说,创作生涯的前期与后期同样重要,从前期到后期是一个自我修养、磨炼心性的过程。在前期,需要视野的确立与充分的积累;而后期,则是一个在大量积累的基础之上进一步发挥,走向成熟,释放出更多创造性的过程。有志于学术的学者,应该有所坚守与执信,不必在意短期、世俗意义上的成功;而在学术生涯的后期,要以刻苦与坚忍,坚持进行“后期写作”。
  • 西山隐者

    西山隐者

    1.他是身处阴谋中心的凡夫俗子,他是没有灵魂的空壳,他是时好时坏的修士,他究竟是谁?2.他是守望者,他是跟随者,他敏感,他迟钝,他亦是守护者!3.他如白玉,他如清风,他是脆弱的瓷,他亦是坚强的盾。4.他放荡,他不羁,他勤政,他爱民,他亦无可奈何。
  • 车骑山

    车骑山

    上世纪七十年代末一个秋天的下午,义乌的小货郎李道平,正在嵊县一个叫李家岙的小山村里,用小货担里的小商品,兑换乡亲们的鹅毛鸭毛等杂货,小生意快结束时,天要下雨了。一个叫李和寿的大汉热情地邀李道平去他家躲雨。两人义气相投结拜成兄弟。故事就此展开。随着祖国改革开放步伐的逐步推进,李道平凭着吃苦耐劳,用小货担慢慢地挑出了小商品市场……李家岙里的三个发小,李不赌,郑强根,李一峰学大人样也结拜为兄弟。其中木纳的老大强根,利用兄弟不赌在大上海的亲戚,从挖下水道,通阴沟起家,逐渐发展成一个房地产大亨……为人豪爽孔武帅气的老二不赌,机缘巧合地走上了职业赌博的行业……结拜中的老小一峰,从小机灵古怪,长大更聪明绝顶又英俊,凭聪明创下了上千万家业,却因故身败名裂……故事中又窜插着太平天国李秀成的遗孤李家达,他的悲忿人生凄凉身世,读来令人唏嘘;和寿的母亲,旧上海大亨黄金荣侄女,一个受过良好教育的富家千金,因日本人侵占上海,导致家破人亡逃难回夫家的苦难人生……所有一切都是过去!盛世繁华就在当下!尽情享受吧!
  • 东辉大侦探1

    东辉大侦探1

    时空的交错宇宙的重启也许到故事的最后才发现一切都是假象