首页 前言

前言

举报
开通vip

前言 前 言 .. 选对了路, 就不怕路远。 ——禅语 这是一个伟大的 . .软. .件. . .时 . .代, 无处不在的软件产品成为了这个时代的典型象征, 强力推 动现代文明加速前进。诚如 “C++语言之父”Bjarne StroustrupÊ所言, “ . .我 . .们 . .的. .文. . .明 . .正 . .运 . .行. .于. . .软 . .件 . .之. .上。” 也正如微软公司新任CEOSatya Nadella所说的, “这就是一个. .由. . .软 . .件 . .驱 . .动的世...

前言
前 言 .. 选对了路, 就不怕路远。 ——禅语 这是一个伟大的 . .软. .件. . .时 . .代, 无处不在的软件产品成为了这个时代的典型象征, 强力推 动现代文明加速前进。诚如 “C++语言之父”Bjarne StroustrupÊ所言, “ . .我 . .们 . .的. .文. . .明 . .正 . .运 . .行. .于. . .软 . .件 . .之. .上。” 也正如微软公司新任CEOSatya Nadella所说的, “这就是一个. .由. . .软 . .件 . .驱 . .动的世界。” 软件工程 (SE), 作为一门以软件及其开发为主要研究对象的新兴学科, 正发挥 着广泛而深刻的社会影响力, 也获得了社会各界的极大支持。始于上世纪60年代、至今方 兴未艾的 “ . .软. .件. .热”就是典型的佐证。 从上世纪40年代为第一代计算机而编写的第一 批软件算起, 软件的发展至今也才几十年, 是名副其 实的新兴信息产品。但就在这短暂历程中, 涌现出了 一大批软件研究者、教育者和实践者。他们创造并积 累了丰富的专业知识和实践经验, 促成了软件工程学 科的快速发展。作为后来人的我们, 有必要站在 “. .巨 . .人. .的. . .肩 . .膀”之上, 学习和应用这些知识和经验, 以更 好地提升专业实践水平并促进学科持续发展。 本书作为第一部明确而详尽阐述 . .软. .件. . .工 . .程 . .核. .心 . .知. .识的中文著作, 旨在为软件工程师和管理者搭起一架. .登. . .上 . .巨 . .人. .肩. . .膀 . .的 . .梯 . .子。这架梯子就 是软件工程核心知识体 (SECBOK)。在此, 作为本书的前言, 笔者首先简介SECBOK, 然后 介绍本书的写作大背景和目标以及内容框架, 继而描述本书的读者群体以及笔者的若干阅 读 建议 关于小区增设电动车充电建议给教师的建议PDF智慧城市建议书pdf给教师的36条建议下载税则修订调整建议表下载 和撰写约定, 最后致谢相关同仁和朋友的帮助。 软件工程核心知识体 核心知识形态 软件工程虽是一门新兴工程学科, 但在进入上世纪90年代之后就已基本形成了独 立的知识体系 [Sha90]。这个体系中的. .知. .识. . .形 . .态分为两类: (1) . .核. . .心 . .知 . .识. .形. . .态, 包括专业常 识、理念、法则、定律和最佳实践 (简述如下); (2) . .非 . .核 . .心. .知. .识. . .形 . .态, 包括具体技术、语言、过程 和工具等。以核心知识形态为表现体的知识就称为. .核. .心. . .知 . .识。由核心知识组成的知识体是 学科形成和发展的基石, 建于之上的就是由各类非核心知识组成的外围知识体。 ÊBjarne Stroustrup被誉为 “C++语言之父”, 为C++语言及其标准化倾注了近20年的心血。他是美国国家工程院院 士, 是ACM(美国计算机协会)和 IEEE (国际电气电子工程师协会)会士。他的经典著作《C++编程语言》 (“The C++ Pro- gramming Language”)已历三版 (1985–2000), 已成为全球众多大学C++课程的经典教材。他现在是美国德州农工 (Texas A&M)大学的资深教授, 个人网址是 http://www.stroustrup.com/。 ��ii�� 软件 工 程 学 科 的 核 心 知 识 体 简 称 为 ::::::::: SECBOK。右图描述了它的五大核心知识 形态, 以 “概念”为中心。概念是知识表示的基 本单位, 是事物的本质特征或属性的抽象反 映。概念的组合形成了法则、理念和理论等知 识形态。法则描述 “怎么做” (即 “How”), 其初 级形态就是最佳实践; 定律描述 “是什么或怎 么发生” (即 “What”)。典型的就是软件的 “ . .二 . .八. .定. . .律”: 80%的缺陷存在于20%的代码中。 而获得最广大实践者认可和自觉遵从的法则 和定律就分别称为常识和理念。特别是, 某些 定律和常识就常用于解释某些法则和理念, 实 际上就充当着 “理论”的角色。理论描述 “为什 么” (即 “Why”), 在理论层面为其他核心知识提供支撑。目前, 软件工程学的理论体系并不 完备, 已知的有限个理论也主要来自于其他学科 (如普通工程学、心理学和管理学)。 核心知识的实践价值 .. 无论你相信什么, 都别完全相信它。 ——B. Russell 软件工程不是一门自然科学, 而是一 门应用工程学科。它的每一项知识都必须 接受业界实践的检验, 且具有 :: 环 :: 境 ::: 相 :: 关 :: 性。 即, 一项知识只能有效应用于既定环境或 满足既定条件的环境。典型的, 很多诞生 于上世纪80年代的 . .结 . .构. .化开发方法都已不再能有效应用于当前主流的. . .面 . .向 . .对. .象. .和. . .基 . .于 . .构 . .件开发实践。特别是, 本学科知识具有显著区别于其他学科 (如数学和物理等)的::人:::性特征。 同一项最佳实践, 由不同软件工程师或团队应用, 会获得不同效果; 同一项定律, 在不同产 品或开发环境中, 也会有不一样的表现。典型的, 上述 “二八定律”就明显没有如质能关系 式 “E=MC 2”那般的精确性。假定某软件产品的20%的代码仅包含了75%的缺陷。业内 人士通常认为这是 “二八定律”的典型实证, 但数学家和物理学家显然不会认同。 有鉴于上述 “环境相关性”和 “人性”特征, 业内专家普遍认为, 本学科的核心知识在工 业实践中仅能充当 “良药”或 “警铃”, 而不能充当 “金科玉律” [Rie96, 序]。这意味着, 在软件 实践中违背某些法则或理念不一定就会带来致命打击 (如导致项目失败)。但是注意, 此 类 “违规”却也不应被忽视, 因为它表明当前实践正步入一个充满更多未知因素或更大风险 的堪忧处境, 值得警惕并亟待处理。 业界的一个普遍现象是,. . .软 . .件 . .工. . .程 . .师 . .几. . .乎 . .完 . .全. . .不 . .懂. .得 . .软. . .件 . .工 . .程. .实. . .践 . .的. .基. . .本 . .法. . . .则。知名专家Tom Gilb将之归咎 于 . . .“令 . .人 . .失 . .望. . . . . .的”软 . .件. .工. .程. . .教 . .育。他认为, 当前的大学教育者 太过于轻视本学科的核心知识教育 (相比之下太过于重视编 ��iii�� 程语言和工具的教育), 导致大部分毕业生没能掌握超十项专业法则Ê。对此, 业内人士感 觉失望, 业外人士感觉不解。且不论有多少 “失望”和 “不解”, 从职业发展的角度来看, 软 件工程师和管理者都必须 “ . .恶 . .补”学科核心知识, 以充实个人的专业知识库, 否则就会碰到 很多 “障碍”和走入很多 “弯路”, 尤其是屡屡犯下之前犯过的 “错误”。对此, 哲学家George Santayana有一句名言: “那些不能从历史中汲取教训的人, 注定要重演前人的失败。”Ë 本 学科的核心知识就是前人大量研究和实践的结晶, 不可不学、不可不用。 现有著作及其不足 从上世纪90年代至今, 已有一些学者研究和总结了软件工程学科的一些核心知识。最 著名的成果当属学界先驱Alan Davis的《201项软件开发法则》Ì (1995年出版),以及著 名学者Albert Endres和Dieter Rombach合著的《软件与系统工程手册: 实证观察、定 律和理论》Í (2003年出版)。两书都列述了与软件过程 (包括需求、设计、编程、测试、维护 和管理等)相关的若干核心知识。典型的, 在Davis的著作中, “. . .质 . .量 . .第. .一”被定义为软件工 程实践的第一法则 [Dav95, 页8], 强调了质量于软件产品和项目的绝对重要性。 笔者认为, 现有学科著作成果尚不够完整、全面和系统。 Davis的著作虽提炼了201项软件开发法则, 但内容稍显 “老 态”, 尤其没有反映出本世纪最新的学科成就和发展轨迹。 Endres和Rombach的著作虽结合了两人的实践经验, 并 从实证的角度集中阐述了50项定律和12项假说, 但没有 涉及法则和最佳实践等其他核心知识形态。其他如Capers Jones等人的相关著作也大都仅是陈列和分析了来自于业界的大量实证数据, 都缺乏 对学科核心知识体系的系统归纳。另外, 作为学界纲领性文件的 “. .软. . .件 . .工. . .程 . .知 . .识. . .体 . .指 . .南” (SWEBOK)也仅列述了本学科的主要知识领域和知识点, 并未阐述每个知识点的具体 内容。从. . .实 . .践 . .者 . .和. .受. .教. . .育 . .者的角度来看, 这些著作都有待更新、补充和具体化。 笔者进一步以为, 如能收集并整理出软件工程学科的所有 (或绝大部分)核心知识, 必 能助力软件工程师和管理者的工程和管理实践。以此为动机, 笔者花费四年有余的时间撰 写了本书。本书弥补了上述著作的不足, 定义了相对较完整的SECBOK, 并全面而系统地 阐述了其所包含的每一项核心知识。当然, 上述著作为本书的创作提供了大量宝贵的知识 和文献信息, 相关内容还会在正文章节中被陆续引用。 全书概要 早在上世纪80年代, 知名学者Richard Fairley就公开表示, . .软. .件. . .工 . .程 . .是. .一. .门. . .技 . .术 . .与 . .管. .理. . .交 . .叉 . .的 . .工. .程. .学. . .科 [Fai85,页2]。技术和管理就如同一币之两面,非但不能割裂,反而应紧 Ê参考: http://www.gilb.com/tiki-download_file.php?fileId=352。 Ë出自George Santayana的名著《理性生活》(“The Life of Reason”, 1995年陆续出版)。 Ì原名为 “201 Principles of Software Development” (ISBN: 9780070158405), 1995年出版, 尚无中译本。ACM(美国 计算机协会)的2005年度会员调查显示, 该书是最受读者欢迎的25本计算机科学经典书籍之一。 Í原名为 “A Handbook of Software and Systems Engineering: Empirical Observations, Laws and Theo- ries” (ISBN: 9780321154200), 2003 年出版, 尚无中译本。 ��iv�� 密联系并相辅相成。脱离管理的技术无法在大规模实践中收获成效, 而脱离技术的管理根 本就是空谈。高效的技术往往渗透着优秀的管理理念, 而有效的管理常是技术经验的总结 和升华。Fairley 的观点获得了业界和学界的一致认同。 本书就以Fairley的观点为据, 从 :: 技 :: 术 ::: 和 :: 管 :: 理两个角度, 分别阐述软件工程核心知识 体 (SECBOK)所涵括的学科核心知识。为此, 本书分为上、下两卷。. .上. . .卷 . .聚 . .焦 . .于. .软. . .件 . .生 . .命 . .期 . .中. .的. . .核 . .心 . .技 . .术. .类. .知. . .识;. . .下. .卷. . .聚 . .焦 . .于 . .软. .件. .开. . .发 . .项 . .目 . .的. .核. .心. . .管 . .理 . .类 . .知. . .识。笔者在此强调, 本书虽 分为两卷, 但两卷之间在内容上存在紧密关联关系, 应当 “同学通用” (这正是笔者不将两卷 分开单独出版的原因)。 大背景 一个长期困扰国内外工程学科发展的关键问题就是 . .教 . .育 . .与. .实. . .践 . .的 . .严 . .重. .脱. . .位。业界实践 早已表明, . .软 . .件. .工. . .程 . .是 . .一 . .门. .显. .著. . .区 . .别 . .于 . .计. .算. . .机 . .科 . .学 . .的. .工. .程. . .学 . . .科。但在教育界, 就以国内大学 教育而言, 几乎所有的. . .软 . .件 . .工 . .程. .师教育依旧沿袭 . .计 . .算. .机. . .科 . .学 . .家的培育模式: 过分强调数学 基础和计算机科学理论教育, 而极度忽略工程教育, 最终导致那些期望成为软件工程师的 大学计算机系毕业生极度缺乏应有的工程素质、知识和技能。典型的, 计算机系毕业生即便 掌握了编写高效率代码的技能, 所编之代码也通常缺乏必要的工程特征, 包括. .可. .读. . . . . .性、准 . .确 . .性. .和. . .可 . .维 . .护 . .性等。另外, 毕业生开发大型软件产品的能力十分有限, 尤其不擅长 “大型团队 分工协作”。这些都是工程教育缺失或不当的典型表征。 与之相应的是, 国内计算机专业书市充斥着大量的讲述编 程语言和开发技术的书籍。位居销量榜前列的都是此类书籍, 如 清华大学谭浩强教授的《BASIC语言》和《C程序设计》, 以 及台湾技术专家侯捷的《深入浅出MFC》。书市上极少出现阐 述 “如何开发大型软件产品和管理大型软件项目”的、 ::: 真 :: 正 :: 的软 件工程专业书籍。已知的此类书籍也常由于内容和写作质量的 问题Ê, 其销量也远远不如语言类书籍Ë。 与上述国内现象形成鲜明对比的是, 国外特别是欧美书市的软件工程书籍广受欢迎。 一方面, 著作者的专业水平和投入保证了著作的质量。另一方面, 软件业的健康发展要求 工程师学习并掌握足够多的、真正属于软件工程学科的知识和技能。笔者创作本书的动机 之一, 就是希望藉此融会贯通国外高质量专业书籍之真知灼见, 并经重新整理、精炼和组 织, 凝聚成一部能 “. .帮. . .助 . .本 . .国. .的. . .软 . .件 . .工. .程. .师. . .和 . .管 . .理. .者. . .高 . .效 . .而. .完. . .整 . .地 . .获. .取. .软. . .件 . .工 . .程. .学. . .科 . .核 . .心 . .知. .识”的专业著作, 为弥补国内本领域书市之空白而贡献一份心力。 Ê中国《程序员》官网组织的年度调查显示, 在受访的学生群体中, 有60%的高校学生明确表示不满意当前高校所用的计算 机专业教材, 大学教育明显无法满足业界的人才需求。由此, 越来越多的大学生求助于各类技术培训机构。依据2008年度调 查, 有77.1%的受访学生明确表示愿意参加软件技术培训。这个数据相比2007年度的60%有明显提升。这表明当前国内大 学计算机系的教育质量越来越无法满足学生的现实需求。参考: http://www.programmer.com.cn/773/。 Ë笔者认为, 上述现象也与当前国内业界泛滥的. . .软 . .件 . .作 . .坊有关。这些小型软件企业, 以无序或近似无序的方式开发和维护数 量众多的小型软件产品。身处其中的软件工程师们日复一日地忙于编写程序和文档, 没有动力学习、也无处应用那些超乎其上 的核心知识。对于当前业界的这种乱象, 笔者持乐观态度。中国势必要走向世界, 其软件业也势必要同国际接轨。同时, 大型和 超大型软件势必会成为业界发展大趋势。在不久的将来, 国内软件企业势必须要真正严肃地对待软件开发, 不可能再沿用从前 那样的 “作坊”开发模式, 因为如此开发出的大型产品在功能、质量、成本和时间上都必定达不到预期目标。基于此, 笔者告诫所 有患有 “近视”的业界同仁, 从长远和大局来看, 都有必要重视软件工程, 按照工程化方法和过程, 有纪律地开发软件产品。 ��v�� .. 任何外国的先进知识和好经验, 我们都要学。 但要多动脑筋, 只能将之作参考, 不能将之作教条。 ——毛泽东 语出《毛泽东选集》 (人民出版社, 1977年)第五卷第307页, 根据原意稍有修改。 目标及其实现 本书旨在通过收集、整理和组织软件工程学科核心知识体 (SECBOK), 达到 “帮助软件 工程师和管理者创造出 :: 广 :::::: 泛、长 :: 时 :: 而 :: 易 ::: 获 :: 取 :: 的 :: 职 :: 业 ::: 实 :: 践 :: 价 :: 值”的目的。其中 “ . .职 . .业. . .实 . .践 . .价 . .值”是指本书所阐述的核心知识能有效助力软件工程师和管理者的专业实践和职业发展; “ . .广. .泛”要求核心知识能有效帮助各层次和各类型的工程师和管理者; “. .长. . .时”要求核心知 识能长时间地有效指导专业实践; “. .易. .获. . .取”则要求核心知识表达简明、组织合理, 易于理 解、“消化吸收”并应用于实践。 为实现这一目标, 笔者在以下五方面投入了大量时间和精力。 1. 选材角度。软件工程是一门 “ :: 以 :: 人 :: 为 ::: 本”的工程学科。 . .实 . .证 . .研. .究和. . .工 . .程 . .经 . .验是学科主体 知识的两个可靠来源。两者既不断地创造新知识, 又不断地验证已有知识的正确性。 笔者花大力气从这两个角度收集学科实证知识, 并进一步将之提炼为核心知识。 2. 选材范围。软件工程主要涵括软件开发、维护和演化的技术和管理方面。这些方面彼 此关联紧密, 不可孤立。笔者逐一搜集专业文献, 力求完整覆盖这些方面。专业文献 覆盖学术论文、专著和教材, 业界调查报告, 知名学者和专家的博文和访谈, 以及企业 和政府等机构官方公布的技术文档 (如企业白皮书和政府技术报告)。 3. 知识选定。SECBOK是整个软件工程学科的知识基石, 必须完备、准确且应时。笔者 基于海量文献, 以实证数据和工程经验为指南, 结合当前实践, 选取实证核心知识, 剔 除陈旧知识和非核心知识, 并确保核心知识提炼的准确性。特别注意, 笔者着意排除 了流行于上世纪60至80年代、不再能有效应用于当前主流实践的相关技术。 4. 知识组织。SECBOK的定义参考了现有的 “SWEBOK”、“SEEK”和 “CBOK”体系Ê。 本书将SECBOK所涵括的核心知识分入13篇 (共64章)。各篇的基本内容在上下卷 的导读部分都有简单介绍, 各章的主要内容则在每篇之篇首部分都有简单介绍。 5. 知识表述。本书所列的所有常识、理念、定律、法则和最佳实践皆由笔者统一表述并多 次校正, 力求文字清晰且风格一致。另外, 本书包括大量数据、图、表和文本框, 力求有 效、生动而高效地表述相关知识。 Ê本书的知识结构主要参考了 IEEE (国际电气电子工程师协会)发布的 “软件工程知识体指南” (SWEBOK)。SWEBOK是 融合了全球数百位专家共同努力的顶梁之作, 被普遍视为软件工程学科发展历程的一个里程碑。SWEBOK的最新版 (V3)已 于2013年发布, 为本学科定义了15大知识域, 覆盖了软件的生命期、项目管理和相关基础学科。SWEBOK的官方网址 是 http://www.swebok.org。另外, 本书的知识结构还参考了SEEK体系和CBOK体系。SEEK体系是ACM(美国计算机协 会)和 IEEE联合制订的 “大学计算科学本科课程体系” (简称CC)之软件工程模块 (简称SE’04)的课程知识体系; CBOK体系则 是由美国国防部某部门制订的 “软件工程硕士课程体系” (简称GSwE)之核心专业课程的知识体系。CC及SE’04的官方网址 是 http://www.acm.org/education/curricula-recommendations。GSwE的官方网址是 http://www.gswe2009.org/。本书 常用的缩写 “SECBOK”就是 “SWEBOK”、“SEEK”和 “CBOK”三者的揉合。 ��vi�� • . .核. .心. . .知 . .识 . .形. .态。本书总共阐述了55项常识、50项理念、76项定律、327项法则 和256项最佳实践。其分配如下表所示。 • . .图. .文. . .结 . .合。本书不仅描绘了300余个专业图例, 而且展示了600余幅插图。前者 主要用于帮助读者理解文字知识, 配有充分的文字解释; 后者则以或幽默或思维 发散的方式, 调节读者的阅读和理解节奏。 • . .数. .据. . .表 . .图。本书给出了超5,000项数据, 其中包括45个数据表和40个数据图。 这些数据皆来自于可靠的实证研究。读者不仅能基于这些数据加深对相关知识 的理解, 还能由此发掘到与自身实践息息相关的 “珍珠”。 • . .文. .本. . .框。本书还包含了约260个文本框和350余条著名言论, 或辅助解释某个 知识点, 或提供一些与上下文相关的饶有趣味的知识。概言之, 这些文本框能丰 富读者的知识面, 并提升或保持读者的阅读兴趣。 内容概览 如上所述, 本书分为上、下两卷。. .上. . .卷 . .聚 . .焦 . .于. .软. . .件 . .开 . .发 . .过. .程. . .的 . .核 . .心. .技. .术. . .类 . .知 . . .识; . . .下 . .卷 . .聚 . .焦. .于. . .软 . .件 . .开 . .发. .项. .目. . .的 . .核 . .心 . .管. .理. .类. . .知 . . .识。简述这两卷的主要内容如下: 上卷——技术卷: 本卷包括七大篇 (共41章), 阐述与软件生命期中各 必要环节相关的核心技术类知识, 具体包括需求工程、软件设计、构 造 (主要是编程)、质量控制 (包括测试和审查)、维护与演化等知识域; 另还包括与软件、软件工程和生命期相关的基础知识。 下卷——管理卷: 本卷包括六大篇 (共23章), 阐述软件开发项目的核心 管理类知识, 具体包括项目度量、规划、过程、个体与团队、客户与用户、配置 (变更)、风 险管理等知识域; 另还包括与软件组织 (企业)、产品和项目管理等相关的基本知识。 • 最后的 “拾遗”部分 (即第十三篇)补充阐述了软件文档和知识工程,并介绍了软件 工程教育和研究现状, 进而描绘了未来的软件产品形态和软件工程方法学。 两卷的内容相辅相成, 一起阐述了完整的软件工程核心知识体 (SECBOK)。各篇的核 心知识分布如下表所示。 子领域 常识 理念 定律 法则 最佳实践 第一篇: 软件工程学概论 4 4 4 1 0 第二篇: 软件生命期 10 3 5 33 37 第三篇: 需求工程 18 3 16 6 33 第四篇: 软件设计 8 5 8 63 51 第五篇: 软件构造 0 3 5 35 30 第六篇: 质量控制 6 2 12 12 11 第七篇: 软件维护与演化 0 2 13 0 5 第八篇: 软件工程管理概论 1 2 1 65 12 第九篇: 项目度量与规划 2 1 3 2 14 ��vii�� 子领域 常识 理念 定律 法则 最佳实践 第十篇: 四要素管理 0 6 4 33 9 第十一篇: 关于 “过程”的管理 3 5 4 13 28 第十二篇: 关于 “人”的管理 1 10 1 48 12 第十三篇: 拾遗 2 4 0 16 14 合计 55 50 76 327 256 本书除了总结和阐述SECBOK之外, 还描述了 . .管 . .理. . . . . .学、经 . .济 . .学 . .和. .心. . .理 . .学等其他学科的 大量辅助知识。例如, 一些管理和心理学理论就能用于解释某些软件工程定律或法则。这 些知识在辅助和解读专业知识之余, 还能提升读者兴趣和拓宽知识视野。 注意, 本书着重关注软件工程的这三大知识域: . .需. .求. . .工 . . . . .程、软. .件. . .设 . .计 . .和. .软. .件. . .质 . .量。这三 者的内容分别占10、7和8章, 共占全书的约40%的篇幅。其他篇章也都频繁引用或回顾 与之相关的知识。之所以如此, 是因为专业教育一直以来都严重忽视这三方面知识和技能 的传授, 业界实践也存在不同程度的忽视。进而, 受教育者和实践者的需求、设计和质控知 识储备明显不足, 也就难以胜任高质量的软件需求、设计和产品质控工作。在此, 笔者再次 提醒读者, 必须足够重视这三大方面知识和技能的系统学习。 读者需知 读者群体 本书主要面向 . .所 . .有 . .软. .件. . .工 . .程 . .师 . .和. .管. . .理 . .者, 帮助他们系统地掌握软件工程学科的核心知 识。同时, 本书也适合业外人员泛读, 以了解本学科概貌。本书既能指导工程实践, 又能辅 导学科教学、研究和培训; 既能作为大学软件工程课程的教科书或主要教辅书, 又能作为一 本专业参考书或工具书。具体的, 笔者期望本书能获得如下读者群体的青睐: • . .软. .件. . .工 . .程 . .师 . .和. .管. .理. . .者: 全书的主要内容将有助于软件工程 师和管理者改进专业思维、扩充专业知识、培养专业素质 和增强专业技能。 • . .软. .件. . .企 . .业 . .高 . .层. .管. .理. . .者: 下卷的主要内容将有助于软件企业 高级管理者 (高管)改善企业文化, 特别是提升软件项目的 行政支持力度和服务质量。 • . .大. .学. . .计 . .算 . .机 . .系. .本. .科. . .生 . .和 . .硕 . .士. .研. .究. . .生: 全书的主要内容将有助于本科生和硕士生培养工 程素质和丰富专业知识, 为日后成长为优秀软件实践者奠定基础。 • . .科. .研. . .人 . . . . .员 (包 . .括. .博. . .士 . .研 . .究 . . .生): 全书的主要内容将有助于研究者全面认识本学科的核心 知识体系, 发现尚待解决的现实问题, 进而确定真正有实践价值的研究问题和方向。 • . .软. .件. . .工 . .程 . .课 . .程. .教. .师. . .和 . .培 . .训 . .师: 全书的主要内容将有助于教师和培训师丰富软件工程系 列课程的教学思路、拓宽教学范围、减少教学失误和提高教学效能。 ��viii�� • . .企. . . . . . .业 IT负. . .责 . .人: 全书的相关内容将有助于企业信息技术 (IT)负责人了解软件工程的 全貌, 进而提升软件项目的投入产出比 (即ROI), 并改善与项目方的合作效率。 • . .业. .外. . .人 . .士: 本书为业外人士提供了一条正确认识软件工程学科概貌的途径。 .. [笔者]要树立 “读者至上”的观念, 把读者当成真 “上帝”, 当成 “衣食父 母”, 当成 “服务对象”。虽人心各异且众口难调, 让所有读者都完全满 意和满足是不可能的。但问题的关键是, 笔者应该要有这份心。 ——易中天 易中天是当代著名学者、历史学家。上文出自《易中天文集》第八卷 “品人录”。 阅读建议 本书的内容多且涉及面广, 笔者首先推荐读者认真阅读本书的 . .目 . .录, 以掌握知识的组 织结构, 然后再行细读。接下来, 就各篇章的阅读顺序, 笔者有如下三项推荐。 • 第一推荐是逐篇逐章阅读。读者可先快速翻读一遍,然后再以章或篇为单位进行精读。 笔者特别建议读者多次重复阅读那些跟自身兴趣或工作相关的知识点。这种方式适 合于大学计算机系本科生和硕士研究生, 以及初级软件工程师 (如程序员)。 • 第二推荐是上下两卷交叉阅读。读者在阅读上卷 (或下卷)的某些知识点之时, 翻看下 卷 (或上卷)的相关内容。这种方式适合于软件管理者、教师、培训师、高级软件工程师 和其他专业资深人员。 • 第三推荐是选择性阅读。读者依据个人需要, 选择性地阅读某些章节。这种方式适合 于科研人员、软件企业高管、企业 IT负责人和业外人士。 关于本书的阅读, 笔者认为最重要的是 :: 多 :: 次 ::: 反 :: 复 :: 阅 :: 读。原 因并不是本书措辞过于晦涩, 而在于所阐述的内容太过重要, 非多次反复阅读而不得深入理解。特别是, 笔者建议读者认真 理解书中所阐述的每项核心知识 (即常识、理念、定律、法则和最佳实践)。虽然笔者已尽可能 地用简明易懂的语言描述和阐述这些知识, 但它们本身所涵括的内容是十分丰富的。普通 读者需要多次精读, 并结合实践才能深入理解这些知识 (这是达到娴熟应用核心知识的必经 之路)。另外, 书中所给出的来自著名学者和专家的经典言论, 也值得读者细细 “咀嚼”。笔者 认为, 这些言论虽极其简短直白, 但表达的却是学者专家们经多年研究和实践而获得的智 慧。概言之, 读者要学会并善于阅读, 方能有效而高效地吸收本书之精华。 撰写约定 笔者在撰写本书的过程中, 遵循了如下规则。敬请读者留意。 • . .缩. .略. . .词 . .及 . .其 . .中. .英. .文. . .表 . .述: 笔者如果认为某英文缩略词 (如SE和SECBOK)应该被读者 所熟知, 就会广泛使用它; 而在其他情况下则会优先使用中文全称词。 ��ix�� • . .外. .文. . .名 . .字 . .和 . .专. .业. . .词: 除某些日文名字之外的所有外文名字一律使用英文; 对于某些已 被国内业界所熟知的外文名, 会在括号内写出中文名。本专业的外来专业词一律用中 文翻译, 并常在括号内给出英文原名 (以备搜索)。 • . .正. .文. . .字 . .体: 在正文中, 黑体字表示重要概念或突出显示; 楷体字表示整段或整句引用; 下划实线表示值得注意的概念; 下划虚线和 :: 下 :: 划 :: 波 :: 浪 :: 线分别表示强调和高度强调; . .下 . .划. .点. . .线则表示提醒或希望引起读者的注意; 各类下划线也常用于罗列陈述中。 • . .各. .类. . .文 . .本 . .框: 依据文本框中的内容确定它的用途 (如标示各种核心知识形态, 包括常 识、理念、定律、法则和最佳实践), 在此无须特别说明。 • . .文. .献. . .引 . .用: 关于文献引用, 笔者采用alpha格式, 即 “[作者姓氏缩写+文献出版年]”, 例如 “[ABL89]”、“[Ada84]”和 “[Dav95]”。笔者采用这种格式有两个原因。一、本书 的绝大多数文献都是英文文献, 在一些引用处还附加了页码 (如 “[Dav95, 页8]”), 该 格式显然比传统的数字上标的方式 (如 [1]或 [1;p 5])更适合本书的需要。二、该格式用 到了 “姓氏缩写”, 体现了对文献作者的应有尊重Ê。 致 谢 特别致谢加拿大Western Ontario (西安大略)大学计算机系的Nazim Madhavji教 授和Mechelle Gittens教授Ë。与这两位教授的、长达近五年时间的合作深刻影响了笔者 的人生和科研历程。笔者的 “研究价值观”和 “理论实践观”就源于Madhavji教授的言传身 教。同时致谢该系软件工程研究组的Syed Murtaza博士Ì和Remo Ferrari博士Í, 以及 加拿大Queens (女皇)大学计算机系的Quazi Rahman博士。这三位同仁对笔者的研究 工作 (特别是关于SECBOK的研究)给予了友情帮助。 致谢 IBM加拿大分部的Andriy Miranskyy博士,DB2系统资深技术专家David Godwin和Enzo Cialini, 以及Siemens (西门子)美国分部的需求工程技术主管Brian Berenbach。笔者在 IBM和西门子公司的工作期间曾得蒙他们的友情帮助, 收获宝贵的实 践经验, 为本书的创作奠定了良好基础。 特别致谢国防科技大学计算机学院王怀民教授及其科研团 队。每次同王教授及其团队的交流都能让笔者受益匪浅; 在国防 科大开展的学术交流也收获了诸多关于SECBOK的宝贵建议。 同时致谢清华大学软件学院的叶晓俊教授, 他们就本书的初稿提 出了参考意见。致谢中南大学信息学院的李向东先生以及万卷出 版社的胡利和张鸿艳编辑, 他们为本书的校正工作付出了辛劳。 致谢网站 http://www.clker.com/提供的免版权素材,书中的大多数插图都来自于该 Ê这第二点, 其实是笔者选用alpha格式的主要原因。毕竟, 软件工程文献中每一项实证或理论知识的获得, 都需要原作者的 极大努力和付出, 是 “心血的结晶”。笔者对此深有体会, 故希望以这种方式表达对文献及其作者的尊重和敬意。 ËGittens博士现任巴巴多斯 (Barbados)West Indies (西印度群岛)大学计算机科学系教授。 ÌSyed Murtaza博士现正在加拿大Montreal (蒙特利尔)大学进行博士后研究。 ÍRemo Ferrari博士现正跟随Madhavji教授进行博士后研究。 ��x�� 网站提供的相关素材。书中的另一些插图来自于微软Office网站提供的素材Ê, 在此也一并 予以感谢。致谢康雯珺女士, 她为本书友情提供了一些精彩风景照片。另外还要致谢彭瑶 女士, 她为本书精心绘制了所有的人物肖像图。致谢黄金玉和聂春媛女士以及汪亚飞、成小 华和刘家豪先生, 他们先后参与了本书封面的设计工作。 致谢国家留学基金委、自然科学基金委、教育部科技发展中心和加拿大自然科学与工程 基金委, 与本书相关的研究受这四方提供的相关科研基金的大力支持Ë。 最后, 笔者要衷心感谢家人和朋友对本书创作事业的支持、理解和关心。 尾 语 最后, 笔者援引业界先驱Ada LovelaceÌ的名句结束本前言, 与诸君共勉之。 .. 我从不满足于我已知的一切, 因为我的已知相比于 我的未知而言永远都只是一个无穷小数。 2014年2月, 湖南长沙 Ê该网站的网址是: http://office.microsoft.com/en-us/images/。 Ë受资助的国家自然科学基金项目号是 61103034, 高校博士点新教师基金项目号是 20110162120087。 ÌAda Lovelace (艾达, 1815–1852)是学界公认的世界上第一位程序员, 英国著名诗人George Byron (拜伦, 1788– 1824)之女。她于1843年左右编写了第一个计算机算法及程序, 拟在当时一台通用机械计算机上计算伯努利数。1980年 由美国国防部组织研发的编程语言ADA就得名于她, 以向她致敬。
本文档为【前言】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_998996
暂无简介~
格式:pdf
大小:5MB
软件:PDF阅读器
页数:10
分类:互联网
上传时间:2014-04-29
浏览量:23