1 / 30
文档名称:

软件工程课件.ppt

格式:ppt   页数:30页
下载后只包含 1 个 PPT 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

软件工程课件.ppt

上传人:phl19870121 2016/5/4 文件大小:0 KB

下载得到文件列表

软件工程课件.ppt

相关文档

文档介绍

文档介绍:软件设计——帮助你从程序员上升为设计师——搞清楚设计什么以及如何设计林锐博士 http://www. chinaspis .com linrui @ chinaspis .com 上海漫索计算机科技有限公司 Page 2 目录 1. 软件设计基本概念 2. 体系结构设计 3. 用户界面设计 4. 数据库设计 5. 模块设计 6. 数据结构与算法设计 7. 小结参考书:《软件工程与项目管理解析》,林锐著,电子工业出版社, 2003 Page 3 1. 软件设计基本概念 基本概念 u设计师与程序员的地位。软件设计的技术难度要比编程、测试的高。所以程序员、测试员称为“员”,而设计师尊称为“师”。 u设计的好坏在根本上决定了软件的优劣。我们可以断言“差的系统设计必定产生差的软件系统”, 但是不能保证“好的系统设计必定产生好的软件系统”。因为在设计之前有需求开发工作,在设计之后还有编程、测试和维护工作,无论哪个环节出了差错,都会把好事搞砸了。–据说上帝把所有的女士都设计成天使,可是天使们在下凡的时候,有些人双脚先着地,有些人脸先着地。上帝的这一疏忽让很多女士伤透了心。所以我们在开发软件时,一定要吸取这个教训。 u软件设计之源是软件需求,包括“功能性需求”与“非功能性需求”。设计的目标就是使所设计的系统能够被开发方顺利地实现,并且恰如其分地满足用户的需求,使开发方和用户的利益极大化。开发人员不万不能偏离需求,为了追求技术的先进性而开展系统设计工作。 u依据“分而治之”的思想,我们把系统设计过程划分为两个阶段:高层设计阶段和详细设计阶段。高层设计阶段的重点是系统结构设计。详细设计阶段的重点是用户界面设计、数据库设计、模块设计、数据结构与算法设计等。 u著名 3D游戏软件 Quake 设计师 Michael Abrash 的总结: “所有真正杰出的设计一旦被设计好,看起来都是那么的简单和显而易见。但是在获得杰出设计的过程中,需要付出令人难以置信的努力。” Page 4 1. 软件设计基本概念系统设计过程示意图 Page 5 1. 软件设计基本概念 软件系统与人体的比喻 u 体系结构如同人的骨架。如果某个家伙的骨架是猴子,那么无论怎样喂养和美容,这家伙始终都是猴子,不会成为人。人的身材大小取决于骨架大小,天生小个子的人基本上不可能成为威猛的大汉,后天再努力(例如锻炼和吃喝)也白搭。由此可见,体系结构乃是系统设计的重中之重。 u用户界面如同人的外表,最容易让人一见钟情或一见恶心。象人类追求心灵美和外表美那样,软件系统也追求(内在的)功能强大和(外表的)界面友好。我们在设计软件时不要沉迷于技术, 而要多多思考什么样的界面才能让用户更加喜欢。 u 数据库是存储和处理数据用的。人体的数据库是大脑,知识相当于数据,全存在大脑里。如果脑子里存储的知识很多,那么这个人就显得博学。如果脑子处理知识的速度很高,那么这个人就显得聪明。数据库设计的主要挑战是“高速处理大容量的数据”。 u 模块如同人的器官。每个器官都具有特定的功能,器官们依附在骨架上。模块是软件系统的部件,它们安插在体系结构上(否则运行起来掉光光了)。在设计模块时要重视功能独立性,还要追求“高内聚、低耦合”。 u 数据结构与算法如同人的神经和肌肉,它分布在全身,让器官具有生命并能发挥功能。人之所以能够全身运动,那是无数的神经和肌肉在起作用。如果局部的神经和肌肉失效了,那么会导致对应的器官残废。如果全局的神经和肌肉失效了,那么人就瘫痪了。同理,数据结构与算法也有全局和局部之分,都要慎重设计。 Page 6 1. 软件设计基本概念 漫谈设计模式 u20 世纪 90 年代,面向对象( Object-Oriented ) 方法与技术在国内软件业界十分火爆,人们热衷于谈论“对象”并引以为荣。十多年来,人们发表、出版了无数的文章和书籍。现在,该写的似乎都写完了,没有新花样玩了,真是一片无聊。设计模式( Design Pattern ) 及时问世,面向对象爱好者们终于有了新的追求。 u1995 年, Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides (戏称“四人帮”)出版了 Design Patterns: Elements of Reusable Object-Oriented Software ,该书的中译本已于 2000 年出版 . u“四人帮”这本书的主要贡献是: 确立了设计模式这个术语,创导了一种新的面向对象设计思潮。该书出版后,全世界参与设计模式研究的人数呈爆炸性地增长。该书的负面效应是: 这本书深奥无比,读者被分成两类,即“看得懂设计模式的”和“看不懂设计模式的”,后