欢迎来到天天文库
浏览记录
ID:39157970
大小:391.31 KB
页数:30页
时间:2019-06-26
《《软件设计》PPT课件》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、软件系统设计——帮助你从程序员上升为系统设计师——搞清楚“设计什么”以及“如何设计”林锐博士http://www.chinaspis.comrui.lin@alcatel-sbell.com.cnlinrui@vip.sina.com目录1.软件系统设计基本概念2.体系结构设计3.用户界面设计4.数据库设计5.模块设计6.数据结构与算法设计7.小结1.软件系统设计基本概念1.1基本概念设计师与程序员的地位。系统设计的技术难度要比编程、测试的高。所以程序员、测试员称为“员”,而设计师尊称为“师”。系统设
2、计的好坏在根本上决定了软件系统的优劣。我们可以断言“差的系统设计必定产生差的软件系统”,但是不能保证“好的系统设计必定产生好的软件系统”。因为在设计之前有需求开发工作,在设计之后还有编程、测试和维护工作,无论哪个环节出了差错,都会把好事搞砸了。据说上帝把所有的女士都设计成天使,可是天使们在下凡的时候,有些人双脚先着地,有些人脸先着地。上帝的这一疏忽让很多女士伤透了心。所以我们在开发软件时,一定要吸取这个教训。系统设计之源是软件需求,包括“功能性需求”与“非功能性需求”。系统设计的目标就是使所设计的系统
3、能够被开发方顺利地实现,并且恰如其分地满足用户的需求,使开发方和用户的利益极大化。开发人员不万不能偏离需求,为了追求技术的先进性而开展系统设计工作。依据“分而治之”的思想,我们把系统设计过程划分为两个阶段:高层设计阶段和详细设计阶段。高层设计阶段的重点是体系结构设计。详细设计阶段的重点是用户界面设计、数据库设计、模块设计、数据结构与算法设计等。著名3D游戏软件Quake设计师MichaelAbrash的总结:“所有真正杰出的设计一旦被设计好,看起来都是那么的简单和显而易见。但是在获得杰出设计的过程中,
4、需要付出令人难以置信的努力。”1.软件系统设计基本概念系统设计过程示意图1.软件系统设计基本概念1.2软件系统与人体的比喻体系结构如同人的骨架。如果某个家伙的骨架是猴子,那么无论怎样喂养和美容,这家伙始终都是猴子,不会成为人。人的身材大小取决于骨架大小,天生小个子的人基本上不可能成为威猛的大汉,后天再努力(例如锻炼和吃喝)也白搭。由此可见,体系结构乃是系统设计的重中之重。用户界面如同人的外表,最容易让人一见钟情或一见恶心。象人类追求心灵美和外表美那样,软件系统也追求(内在的)功能强大和(外表的)界面友
5、好。我们在设计软件时不要沉迷于技术,而要多多思考什么样的界面才能让用户更加喜欢。数据库是存储和处理数据用的。人体的数据库是大脑,知识相当于数据,全存在大脑里。如果脑子里存储的知识很多,那么这个人就显得博学。如果脑子处理知识的速度很高,那么这个人就显得聪明。数据库设计的主要挑战是“高速处理大容量的数据”。模块如同人的器官。每个器官都具有特定的功能,器官们依附在骨架上。模块是软件系统的部件,它们安插在体系结构上(否则运行起来掉光光了)。在设计模块时要重视功能独立性,还要追求“高内聚、低耦合”。数据结构与算
6、法如同人的神经和肌肉,它分布在全身,让器官具有生命并能发挥功能。人之所以能够全身运动,那是无数的神经和肌肉在起作用。如果局部的神经和肌肉失效了,那么会导致对应的器官残废。如果全局的神经和肌肉失效了,那么人就瘫痪了。同理,数据结构与算法也有全局和局部之分,都要慎重设计。1.软件系统设计基本概念1.3漫谈设计模式20世纪90年代,面向对象(Object-Oriented)方法与技术在国内软件业界十分火爆,人们热衷于谈论“对象”并引以为荣。十多年来,人们发表、出版了无数的文章和书籍。现在,该写的似乎都写完了
7、,没有新花样玩了,真是一片无聊。设计模式(DesignPattern)及时问世,面向对象爱好者们终于有了新的追求。1995年,ErichGamma,RichardHelm,RalphJohnson,JohnVlissides(戏称“四人帮”)出版了DesignPatterns:ElementsofReusableObject-OrientedSoftware,该书的中译本已于2000年出版.“四人帮”这本书的主要贡献是:确立了设计模式这个术语,创导了一种新的面向对象设计思潮。该书出版后,全世界参与设计
8、模式研究的人数呈爆炸性地增长。该书的负面效应是:这本书深奥无比,读者被分成两类,即“看得懂设计模式的”和“看不懂设计模式的”,后者居多。很多人刚入门时就被吓住了,知难而退。何为“模式”和“设计模式”?模式描述了在我们周围不断重复发生的问题,以及该问题的解决方案的核心,这样你就能一次又一次地使用该解决方案而不必重复劳动。模式就是一种公式化的表现,究竟公式化是不是好事?(蔡学庸精辟的解释)尽管软件技术发展非常快,但是仍然有非常多的设计模式可以让我们套用,包括
此文档下载收益归作者所有