软件设计是软件开发的核心活动,软件设计理论的发展推动着软件工程的发展。很多基础的软件设计理论因为产生时间较早,已经很少被人提及,但它们仍然是理解软件设计、做好软件设计活动的基础。
本书的目的是重新将这些基础的软件设计理论梳理出来,作为学习软件设计新方法的基础,帮助读者更好地理解各种软件设计技术。
本书的基本思路是:
1)介绍最为基础的软件设计理论,包括结构化编程理论、类型、模块化、信息隐藏、面向对象设计原则、软件设计方法学、软件体系结构理论等。这些理论构成了不同阶段、不同类型软件设计活动的基础。
2)始终贯彻软件设计最为重要的质量观念。从小规模软件的程序正确性,到中大规模系统的可修改性,再到大规模软件系统的可靠性、性能、安全性等质量,关注各种设计理论对这些质量的满足能力。
3)书中设计了大量案例,通过案例解释较为晦涩难懂的设计方法和技术,力求做到深入浅出。
4)探索软件设计的根本目标、衡量标准、抽象与分解、物理与逻辑等较为深入的内容,希望能帮助读者更深刻地理解软件设计。
在过去的数年间,作者多次尝试写作本书,都因为各种缘由耽搁下来。直到这次,终于有时间完成。其中必有不足之处,希望后续能在读者的反馈中完善。有建议和意见的读者可以联系eryuding@hotmail.com。
本书写作过程中,得到了家人和朋友的大力支持。非常感谢他们,没有他们的鼓励,我可能没有毅力坚持完成本书的写作。
作者
2024年1月于南京