作者:徐品 日期:2022-04-08 18:32:35
“软件设计”是学习如何设计一个软件,是“软件工程’’中的重要一环。但是要说清楚如何设计一个软件却不是一件很容易的事。在应用软件方面软件的类型实在太多了.按开发规模分类,有个人、3人左右的小团队、5-10人的中等团队、企业式团队(几十人)等;按网络方式分类,有单机、c/s(客户机/服务器)、b/s(浏览器/服务器)等类型;按项目来源分类,则有自创自用型、科研型、内部使用型、商业型等;按适用范围可分为独家订做、通用型、行业型,等等。由于各种类型软件的要求不同,实现的目标不同,对软件开发的质量不同,当然,编写方式也是不同的。软件设计课程通常会告诉你编制软件所要遵循的原则,软件开发需要经历哪些工程。但不能期望学完了软件设计,什么软件都能设计了。应该说,通常软件设计这个课程属于方法论范畴,而不是如同电路设计、程序语言设计那样让你学会一项技能。
很多读者期望通过软件设计课程的学习,就能学会如何去设计一个软件,但事实上并不那么理想。现在,很多软件设计的论著都致力于对软件开发过程的总结,力求在方法论上找出软件设计的规律,用于指导学习者进行软件设计。这方面*重要的成果应该是uml(统一建模语言)。这些抽象的法则和设计方法无疑是非常重要的,在本书中也有专门的介绍。但如果对一个没有太多的软件开发经验的大学生或研究生,尤其是非计算机专业的学生来说,这些理论实在是太抽象了,以至于很多学完软件设计的学生感觉没有实质性的收获。这些书本上的软件设计的知识也许要等到从事软件开发两三年以后才有体会,如果那时还记得这些知识的话。
但是,要求学习者一定要等到积累了一定经验以后再来学习软件设计的方法是不现买的。根据作者多年的软件开发经验,并通过几年的教学实践,我们认为,对于没有足够编程经验的读者来说,软件设计课程也是可以学习的;但在学习抽象的软件设计方法之前还是要学一些基本的软件设计技巧,让学习者积累一定的经验,然后再去理解抽象的方法论。
本书的主要对象是学过c++语言但没有太多开发经验的学生,特别是非计算机专业的学生。可作为大学四年级或新入学的研究生学习软件设计的教材。
本书分四个部分,共11章。本书采用以实例为主,力求将抽象的设计方法融入到具体程序实现中,让读者从实例中学习软件设计的方法。本书所采用的程序语言是c++,开发工具是vc++,软件设计实例是单机运行的绘图软件。
**部分是“程序设计基础知识”,是由第1、2两章组成。主要是c++语言和数据结构的知识提要,供那些c++基础不太好,或学得不够深入的学生复习和深入学习用。其中着重介绍运算符重载、多态性、模板、线性表等概念。如果对这方面很熟的学生,则可以跳过或粗略浏览一遍即可。
第二部分是“mfc编程技术”,是由第3、4、5三章组成。主要介绍mfc程序调试方法、基本原理及基本的开发技术。使读者对mfc程序有一个比较深入的了解。mfc程序结构提供了一个很好的软件设计范本,我们在了解它的编程技术的同时,也会对mfc程序结构有一个比较深刻的印象,这对软件设计的学习是非常有好处的。
第三部分是“软件开发实例”,是由第6、7、8三章组成。这部分将引导读者开发一个绘图软件系统。该软件虽然很小,但其中包含的数据结构、数据的管理、程序流程等对软件设计的学习者都非常具有借鉴作用。
第四部分是“软件工程与软件设计”,是由第9、10、11三章组成。这部分将结合前面程序的例子,介绍软件工程的概念和软件设计的方法。后面还着重介绍了uml统一建模语言。*后还结合开发实例给出了uml的设计方法。从一个具体的开发实例中获得软件设计的思路,从而能够理解软件设计的理论。这就是本书所要追求的目标。