![]()
内容推荐 本书本着理论联系实际、专业特色突出的原则,从传统方法学和面向对象方法学两个方面介绍软件工程的主要内容,使学生能够掌握计算机软件系统开发和维护的基本原理,提高综合应用所学知识的能力,提高分析问题、解决问题和实际的软件开发能力。 全书共12章,系统讲述软件开发、维护和管理的工程化的概念、原理、方法和技术,主要内容包括软件工程的基本概念、可行性研究、需求分析、概要设计、详细设计、实现、维护等软件开发过程、原理、方法、规范以及软件项目管理的基本技术等,并力图通过案例贯穿两种方法学的相应章节。 本书涵盖软件工程基础内容的各个方面,可作为计算机科学与技术、软件工程、信息安全等专业的本科生教材,也可供软件信息行业的工程技术人员参考。 目录 第1章 概论 1.1 软件概述 1.1.1 软件的定义 1.1.2 软件的特点 1.1.3 软件的分类 1.2 软件危机 1.2.1 软件发展阶段 1.2.2 软件危机的背景、表现、原因及解决途径 1.3 软件工程概述 1.3.1 软件工程的定义 1.3.2 软件工程的特点 1.3.3 软件工程的基本原理 1.3.4 软件工程的基本目标 1.4 软件生命周期 1.4.1 软件定义时期 1.4.2 软件开发时期 1.4.3 软件运行维护时期 习题\t 第2章 软件方法学与过程模型 2.1 软件方法学 2.1.1 传统方法学 2.1.2 面向对象方法学 2.2 软件过程模型 2.2.1 传统方法学的过程模型 2.2.2 面向对象方法学的过程模型 2.2.3 其他过程模型 习题\t 第3章 可行性研究与需求分析 3.1 可行性研究 3.1.1 可行性研究的任务 3.1.2 可行性研究过程 3.1.3 系统流程图 3.1.4 成本/效益分析 3.2 需求分析 3.2.1 需求分析概述 3.2.2 需求获取的方法 3.2.3 需求分析建模 3.2.4 其他图形工具 3.2.5 需求分析的过程和需求规格说明书 3.2.6 验证软件需求 习题\t 第4章 概要设计 4.1 设计过程 4.1.1 设想供选择的方案 4.1.2 选取合理的方案 4.1.3 推荐最佳方案 4.1.4 功能分解 4.1.5 设计软件结构 4.1.6 设计数据库 4.1.7 制订测试计划 4.1.8 书写文档 4.1.9 审查和复审 4.2 设计原理 4.2.1 模块化 4.2.2 抽象 4.2.3 逐步求精 4.2.4 信息隐藏和局部化 4.2.5 模块独立 4.3 启发规则 4.3.1 改进软件结构,提高模块独立性 4.3.2 模块规模应该适中 4.3.3 深度、宽度、扇出和扇入都应适当 4.3.4 模块的作用域应该在控制域之内 4.3.5 力争降低模块接口的复杂程度 4.3.6 设计单入口单出口的模块 4.3.7 模块功能应该可以预测 4.4 面向数据流的设计方法 4.4.1 概念 4.4.2 变换分析 4.4.3 事务分析 4.5 案例设计 习题\t 第5章 详细设计 5.1 详细设计的任务 5.1.1 确定每个模块的具体算法 5.1.2 确定每个模块的内部数据结构及数据库的物理结构 5.1.3 确定模块接口的具体细节 5.1.4 编写文档,进行复审 5.2 人机界面设计 5.2.1 设计问题与设计过程 5.2.2 人机界面设计指南 5.3 过程设计的工具与结构程序设计 5.3.1 过程设计的工具 5.3.2 结构程序设计 5.4 面向数据结构的设计方法 5.5 程序复杂程度的定量度量——McCabe方法 习题\t 第6章 实现 6.1 编码 6.1.1 选择适宜的程序设计语言 6.1.2 遵循合理的编码风格 6.2 软件测试基础 6.2.1 测试的目标 6.2.2 测试问题和测试准则 6.2.3 测试方法 6.2.4 测试步骤 6.2.5 测试阶段的信息流 6.3 单元测试 6.3.1 测试重点 6.3.2 代码审查 6.4 集成测试 6.4.1 非渐增式测试 6.4.2 渐增式测试 6.5 验收测试 6.5.1 验收测试的范围 6.5.2 Alpha和Beta测试 6.6 白盒测试技术 6.6.1 逻辑覆盖 6.6.2 控制结构测试——基本路径测试 6.7 黑盒测试技术 6.7.1 等价划分法 6.7.2 边界值分析法 6.7.3 错误推测法 6.8 调试 6.8.1 调试过程 6.8.2 调试途径 6.9 软件可靠性 6.9.1 基本概念 6.9.2 估算平均无故障时间的方法 习题\t 第7章 维护 7.1 软件维护概述 7.1.1 软件维护的定义 7.1.2 软件维护的类型 7.1.3 软件维护的特点 7.2 软件的可维护性 7.2.1 软件可维护性定义 7.2.2 决定软件可维护性的因素 7.3 软件维护过程 7.3.1 维护组织 7.3.2 维护报告 7.3.3 维护的事件流 7.3.4 保存维护记录 7.3.5 评价维护活动 7.4 预防性维护 7.4.1 老程序修改方法 7.4.2 开发新程序的必要性 7.5 软件再工程过程 7.5.1 库存目录分析 7.5.2 文档重构 7.5.3 逆向工程 7.5.4 代码重构 7.5.5 数据重构 7.5.6 正向工程 习题\t 第8章 面向对象方法学 8.1 面向对象方法学概述 8.1.1 面向对象方法学的要点 8.1.2 面向对象方法学的优点 8.2 面向对象的概念 8.2.1 对象 8.2.2 其他概念 8.3 面向对象建模 8.3.1 对象模型 8.3.2 动态模型 8.3.3 功能模型 8.3.4 三种模型之间的关系 习题\t 第9章 面向对象分析 9.1 面向对象分析的基本过程 9.1.1 概述 9.1.2 三个子模型与五个层次 9.2 建立功能模型 9.2.1 需求 序言 随着信息技术的不断拓展,万物互联,软件近乎无 处不在。这意味着软件工程影响着包括国防、金融、教 育和医疗等领域的发展,软件工程已逐渐上升到国家长 期发展战略的层面。在推动战略性新兴产业融合集群发 展,构建新一代信息技术、人工智能、生物技术、新能 源、新材料、高端装备、绿色环保等一批新的增长引擎 的进程中,软件工程的重要性日益突出。 软件工程是对软件的设计、开发和维护进行详细的 工程研究。软件工程师应用工程原理和编程语言知识为 终端用户建立软件解决方案。引入软件工程是为了解决 软件危机,确保应用程序的构建始终如一、正确、准时 、符合预算并符合要求。 本书在知识结构的组织方面充分参考了电气与电子 工程师学会(Institute of Electrical and Electronics Engineers,IEEE)最新发布的“软件工 程知识体系(software engineering body of knowledge,SWEBOK)”框架,系统地反映软件工程的 全貌,从传统方法学和面向对象方法学两个视角并行介 绍软件工程的原理、概念、技术方法和部分工具。在整 体结构上,本书注重两种方法学之间的逻辑性和整体性 ,注重贯穿软件开发整个过程的系统性认识和实践性应 用,内容既兼顾了传统实用的软件开发方法,又展现了 现代软件工程的现状和发展前沿现状。 鉴于软件工程实践性强,并且理论内容结合实际应 用有助于学生切实掌握软件开发的理论、流程和技术, 全书采用案例驱动的编写思路,以日常较为熟悉的超市 和快递系统等应用实例为线索,以当前流行的统一开发 过程、面向对象技术和统一建模语言(unified modeling language,UML)作为核心,密切联系先进 技术和最佳实践,结合教学内容,设计逻辑连贯的典型 案例,从而让用例的概念和内容具体而清晰,使本书具 有更好的针对性和便利性。书中包含项目组成员多年来 在软件开发实践、软件工程教学和科研活动中的认识与 体会,通过大量的案例分析,力求实现课程内容与组织 结构的系统性、先进性、基础性和实用性。 全书共12章。其中,第1章是概论,对整本书做总 领性介绍,包括软件、软件危机、软件工程以及软件生 命周期的介绍。第2章是软件方法学与过程模型,针对 软件过程模型这一要素,结合软件生命周期,分别对传 统方法学和面向对象方法学分析不同过程模型的功能和 异同点。第3~7章围绕软件的生命周期,介绍传统方法 学,包括可行性研究与需求分析、概要设计、详细设计 、实现和维护。这些软件生命周期的各个阶段工作是传 统方法学的重要基础。第8~11章针对当前流行的面向 对象方法学,进行软件分析、设计和实现。面向对象方 法学融入了软件生命周期理念,一方面体现面向对象方 法的生命周期思想,另一方面体现面向对象方法学特有 的无缝和迭代思想。第12章围绕软件项目管理技术展开 介绍。全书基于案例驱动,系统地贯穿了软件的生命周 期思想,将两种方法学有机组织和逻辑贯通,让软件工 程两种方法学的发展呈现时间的先后关系,体现技术的 传承和发展,使全书的逻辑性更强,承接关系更清晰。 在课程教学计划中,建议总课时48学时,其中理论 讲授安排32学时,实践安排16学时。建议采用第1~12 章的自然顺序讲授,其中第3~11章分两种思路分别展 开,即传统方法学(第3~7章)和面向对象方法学(第 8~11章)的分析与设计过程。对已在本科阶段学过软 件工程的硕士研究生,着重讲授面向对象的软件工程理 念。 本书第1~5章、第7~9章由南京信息工程大学张佩 云教授编写,第6章由南京信息工程大学徐扬博士编写 ,第10、11章由南京信息工程大学余文斌博士编写,第 12章由南京信息工程大学周小莉博士编写。研究生郭威 峰、陶言昊、丁松、范家俊、潘朝君、黄天林、夏铭蔚 等人承担了资料的收集和整理等。感谢南京信息工程大 学计算机学院院领导对编者编写此书的鼓励和全力配合 。本书的成稿作者参考了大量国内外优秀的著作、教材 、文献资料和科研成果,在此编者向所有对本书编写和 出版工作给予支持和帮助的人表示衷心的感谢。 由于编者水平有限,加之时间仓促,书中疏漏之处 在所难免,恳请广大读者批评指正。 |