1. 软件系统设计基本概念
1.1 基本概念
设计师与程序员的地位。系统设计的技术难度要比编程、测试的高。所以程序员、测试员称为“员
”,而设计师尊称为“师”。
系统设计的好坏在根本上决定了软件系统的优劣。我们可以断言“差的系统设计必定产生差的软件
系统”,但是不能保证“好的系统设计必定产生好的软件系统”。因为在设计之前有需求开发工作,
在设计之后还有编程、测试和维护工作,无论哪个环节出了差错,都会把好事搞砸了。
–
据说上帝把所有的女士都设计成天使,可是天使们在下凡的时候,有些人双脚先着地,有
些人脸先着地。上帝的这一疏忽让很多女士伤透了心。所以我们在开发软件时,一定要吸
取这个教训。
系统设计之源是软件需求,包括“功能性需求”与“非功能性需求”。系统设计的目标就是使所设计的
系统能够被开发方顺利地实现,并且恰如其分地满足用户的需求,使开发方和用户的利益极大化
。开发人员不万不能偏离需求,为了追求技术的先进性而开展系统设计工作。
依据“分而治之”的思想,我们把系统设计过程划分为两个阶段:高层设计阶段和详细设计阶段。
高层设计阶段的重点是体系结构设计。详细设计阶段的重点是用户界面设计、数据库设计、模块
设计、数据结构与算法设计等。
著名 3D 游戏软件 Quake 设计师 Michael Abrash 的总结:“所有真正杰出的设计一旦被设计好,看
起来都是那么的简单和显而易见。但是在获得杰出设计的过程中,需要付出令人难以置信的努力
。”