软件设计的要素
作者简介
"丹尼尔·杰克逊 麻省理工学院(MIT)计算机科学系教授,计算机科学和人工智能实验室(CSAIL)副主任。美国国家研究院(National Academies)关于软件可靠性研究的负责人。因其对软件研究做出的贡献,获得美国计算机协会(ACM)颁发的“影响力”奖和“杰出研究”奖, Alloy软件建模语言的首/席设计师,与美国国家航空航天局(NASA)、哈佛大学麻省总医院(MGH)以及丰田公司开展过软件项目合作。"
内容简介
"为什么有些设计如此成功,而另一些却如此失败 概念设计是一个简单的理念,你无须掌握任何复杂的技术就可以将其应用在软件的使用或设计中。我举的很多概念示例都是生活中常见的。因此,如果你在阅读本书后认为概念是一种自然而然甚至显而易见的用以思考软件的角度,并且认为你学到的只不过是实现设计想法的一种系统框架,那么这本书就达到了它的目的。 但是,即使这本书的主题看起来很常见,并且引起了你的共鸣,但我猜想对于许多读者来说,这种思考软件的新方式也会让他们感到迷惑,至少一开始会这样。尽管软件设计师几十年来一直在谈论概念模型及其重要性,但是概念从未被放在软件设计的中心位置。如果采用概念来描述每个软件或者系统,那么设计将会是什么样子?这些概念到底是什么?它们是如何构建的?软件设计师又是如何将它们组合在一起形成一个整体软件的? 我对本书进行了特别的编排,以便抱有不同目的的读者可以在书中经历不同的旅程。有些读者可能希望尽快用本书的内容指导实践;其他一些想要更深入了解的读者则可能愿意跟随我暂离主路,略微绕行。这个前言可以帮助不同的读者规划自己的路线。 如果你也对软件设计感兴趣 简而言之,本书的目标读者是任何对软件、设计或可用性感兴趣的人。你可能是程序员、软件架构师或用户交互设计师,也可能是顾问、分析师、项目经理或营销人员,还可能是计算机科学专业的学生、教师或研究人员,或者只是像我一样,喜欢思考这些问题:为什么这样设计,以及为什么有些设计如此成功,而另一些却如此失败。 本书不需要读者具备计算机科学或编程的知识。虽然书中的许多原理可以用逻辑语言更精确地表达出来,但并不需要读者具有数学背景。为了尽可能吸引更广大的读者,我从各种广泛使用的软件中寻找案例,不管这些软件是文字处理软件还是社交媒体平台。因此,每个读者都可能遇到一些易于理解的案例,也可能遇到一些需要付出一定努力才能明白的案例。 我希望阅读本书能为你带来另一个好处:更扎实地掌握那些你正在使用但还未能完全理解的软件。" "为什么有些软件设计得如何成功,而有些却很失败?为什么概念对伟大的设计很重要? 对于软件设计师而言,哪些设计原则有利于创造一个好软件? 我们常用的软件如苹果电脑中Mac系统的废纸篓,其本质是什么? 机票预订软件往往会用什么潜规则来牟取更多利益? 在《软件设计的要素》中,丹尼尔·杰克逊向读者展示了一些精彩和常见的软件案例,不管是软件架构师、程序员还是使用软件的普通读者,都可以从这本书中看到潜伏在日常软件界面之下的底层概念,从而更好地设计、使用软件。 [作者简介] 丹尼尔·杰克逊 麻省理工学院(MIT)计算机科学系教授,计算机科学和人工智能实验室(CSAIL)副主任。美国国家研究院(National Academies)关于软件可靠性研究的负责人。因其对软件研究做出的贡献,获得美国计算机协会(ACM)颁发的“影响力”奖和“杰出研究”奖, Alloy软件建模语言的首/席设计师,与美国国家航空航天局(NASA)、哈佛大学麻省总医院(MGH)以及丰田公司开展过软件项目合作。"