基本信息

内容简介
计算机书籍
作为国家精品课程“软件工程与计算”系列课程的第二门课程配套教材,《软件工程与计算(卷二):软件开发的技术基础》以经典软件工程方法与技术为主线,软件开发技术与程序设计知识为教学重点,培养学生简单小组级别、中小规模软件系统的软件开发能力。
《软件工程与计算(卷二):软件开发的技术基础》主要分为六部分。第一部分介绍软件工程的基本框架。第二部分介绍项目启动阶段的知识。第三部分介绍软件需求开发的基础知识,包括软件需求工程的概要、软件需求的内涵、常见的需求分析方法、软件需求文档。第四部分首先介绍软件设计的基础概念,之后沿着设计过程和设计技术两条主线,深入描述软件设计的相关知识。第五部分介绍软件构造、测试、移交与维护等软件开发的下游工程的基础知识。第六部分是对第一部分的延续,通过总结性回顾,进一步加深读者对软件工程的理解。
《软件工程与计算(卷二):软件开发的技术基础》可作为高等院校软件工程、计算机及相关专业本科生软件工程课程的教材,也可作为从事软件开发的相关技术人员的参考书。
目录
软件工程教材序
《软件工程与计算》使用说明
前言
第一部分 软件工程概论
第1章 软件工程基础 2
1.1 软件 2
1.1.1 软件独立于硬件 2
1.1.2 软件是一种工具 2
1.1.3 软件的核心是程序 3
1.1.4 软件开发远比编程要复杂 3
1.1.5 应用软件基于现实又高于现实 4
1.2 软件工程 4
1.2.1 定义 4
1.2.2 软件工程是一种工程活动 4
1.2.3 软件工程的动机 5
1.2.4 软件工程是科学性、实践性和工艺性并重的 6
1.2.5 软件工程追求足够好,不是最好 8
1.2.6 软件工程的产品是基于虚拟计算机的软件方案 8
1.2.7 软件工程的最终目的 9
前言
《软件工程与计算(卷二):软件开发的技术基础》在写作过程中遵循了以下思路。
1. 围绕计算系统示例按照瀑布模型展开。《软件工程与计算(卷二):软件开发的技术基础》围绕计算系统示例的开发构建,按照典型的瀑布式软件开发过程模型组织教学内容,详细描述了计算系统示例如何完整地逐步构建起来,以及所用到的软件工程开发技术。
2. 强调软件工程过程与软件开发技术的融合。《软件工程与计算(卷二):软件开发的技术基础》融软件工程技术、程序设计技术、面向对象技术、软件工程管理、软件职业素质、团队合作交流等知识教学为一体。传统课程往往以技术主题为线索组织教学,容易使学生割裂理解各种软件开发技术。本课程以计算系统构建示例(计算系统示例与学生实践用例)为线索组织教学活动,让学生带着构建系统的问题,系统地学习知识并在适当的软件工程过程中融会贯通所学的软件开发技术。
3. 重点强调中小规模软件设计。《软件工程与计算(卷二):软件开发的技术基础》的重点和难点是中小规模软件设计,希望读者通过《软件工程与计算(卷二):软件开发的技术基础》的学习能够具有中小规模小组级软件开发构建的能力。而软件需求工程、大规模软件设计、软件构造、软件测试、软件过程与管理等高级知识和技能建议在后续高级课程中讲解。
4. 软件工程制品和软件工程工具的全面认知。软件工程制品不仅仅是代码,也不仅仅是文档,而是一系列紧密相关的软件产物,因此,《软件工程与计算(卷二):软件开发的技术基础》反复强调学生对软件工程制品的认知和综合运用能力。同时,方法与工具是软件工程的两大支柱,因此,《软件工程与计算(卷二):软件开发的技术基础》在传授综合知识和方法技术的同时,在计算系统示例讲解和配套学生实践用例实施过程中重视学生对软件工程工具、软件构造工具、项目管理工具等的使用。“工欲善其事,必先利其器”,《软件工程与计算(卷二):软件开发的技术基础》推荐了一些主流的工具,但各校在执行过程中还应该考虑对知识产权的尊重,这本身也是软件职业基础的一部分。
《软件工程与计算(卷二):软件开发的技术基础》由六个主要部分组成:
第一部分的基本目标是介绍软件工程的基本框架,使不熟悉软件工程的读者建立对软件工程的基本印象。
第二部分的基本目标是掌握项目启动阶段的知识,并能够实际开展相应活动。
第三部分的基本目标是介绍软件需求开发的基础知识,包括了解软件需求工程的概要,理解软件需求的内涵,掌握常见的需求分析方法,能够编写简单的软件需求文档。
第四部分是全书的重点和难点,其基本目标是使读者掌握中小规模软件设计所需的相关技术。本部分首先介绍软件设计的基础概念,之后沿着设计过程和设计技术两条主线,深入描述软件设计的相关知识。其中主要包括软件设计的核心思想,设计模型,体系结构设计、人机交互设计和详细设计的过程,体系结构概念和风格,人机交互设计常用原则和技术,模块化与信息隐藏的思想,设计模式,以及如何编写软件设计描述文档。
第五部分的基本目标就是介绍下游工程的基础知识。软件构造、测试、移交与维护又被称为软件开发的下游工程。相比之下,上游工程更注重创造性,下游工程更注重将上游工程的结果进行成功实施。
第六部分是对第一部分的延续,基本目标是在读者系统地了解整个软件开发过程之后,通过总结性回顾,进一步加深读者对软件工程的理解。
《软件工程与计算(卷二):软件开发的技术基础》面向的主要读者对象包括从事软件开发的相关技术人员,以及学习“软件工程”课程的高等院校的软件工程专业低年级学生。建议读者在学习了《软件工程与计算(卷一)》后学习《软件工程与计算(卷二):软件开发的技术基础》,将开发规模提升到小组开发级别的中等规模软件系统,重点展开对软件工程方法的学习。后续的《软件工程与计算(卷三)》进一步培养学生对软件工程方法和程序设计方法的实际运用能力,同时强化项目管理能力、团队交流沟通能力和对软件工程制品的整体把握能力。
骆斌老师主持策划了《软件工程与计算(卷二):软件开发的技术基础》,参加了书稿写作的全部讨论,并对整个书稿的具体写作内容进行了指导和审阅。丁二玉老师主要负责编写了《软件工程与计算(卷二):软件开发的技术基础》的第1章至第7章、第11章、第17~23章、附录A至附录D.2。刘钦老师主要负责编写了《软件工程与计算(卷二):软件开发的技术基础》的第8章至第10章、第12章至第16章、附录D.3与附录D.4。最后丁二玉老师进行了全书的统稿工作。
前人工作是《软件工程与计算(卷二):软件开发的技术基础》写作的基础,《软件工程与计算(卷二):软件开发的技术基础》借鉴了已有著作和论文的内容,在此对列入引用文献清单的作者表示感谢。同时,《软件工程与计算(卷二):软件开发的技术基础》在写作的过程中,得到了很多人士的帮助。感谢张瑾玉、黄蕾女士,郑滔、邵栋、任桐炜、刘嘉先生,他们参与了《软件工程与计算(卷二):软件开发的技术基础》的内容讨论和评审,对《软件工程与计算(卷二):软件开发的技术基础》提出了宝贵的意见和帮助。
限于编者的水平,错误和不妥之处在所难免,衷心希望读者指正赐教。如对《软件工程与计算(卷二):软件开发的技术基础》有任何意见和建议,可通过luobin@nju.edu.cn、eryuding@software.nju.edu.cn、qinliu@software.nju.edu.cn与我们联系。
作者
2012年10月
南京大学北园
序言
国际软件工程学科教程CC-SE2004建议,软件工程专业教学计划的技术课程包括初级课程、中级课程、高级课程和领域相关课程。
初级课程。包括离散数学、数据结构与算法两门公共课程,另三门课程可以组织成计算机科学优先方案(程序设计基础、面向对象方法、软件工程导论)和软件工程优先方案(软件工程与计算概论/软件工程与计算Ⅱ/软件工程与计算Ⅲ)。
中级课程。覆盖计算机硬件、操作系统、网络、数据库以及其他必备的计算机硬件与计算机系统基本知识,课程总数与计算机科学专业相比应大幅度缩减。
高级课程。六门课程,覆盖软件需求、体系结构、设计、构造、测试、质量、过程、管理和人机交互等。
领域相关课程。与具体应用领域相关的选修课程,所有学校应结合办学特色开设。
CC-SE2004的实践难点在于:如何把计算机专业的一门软件工程课程按照教学目标有效拆分成初级课程和六门高级课程?如何裁剪与求精计算机硬件与系统课程?如何在专业教学初期引入软件工程观念,并将其在教学中与程序设计、软件职业、团队交流沟通相结合?
南京大学一直致力于基于CC-SE2004规范的软件工程教学实践与创新,在专业教学早期注重培养学生的软件工程观与计算机系统观,按照软件系统由小及大的线索从一年级开始组织软件工程类课程。具体做法是:在求精计算机硬件与系统课程的基础上,融合软件工程基础、程序设计、职业团队等知识实践的“软件工程与计算”系列课程,通过案例教授中小规模软件系统构建;围绕大中型软件系统构建知识分领域,组织软件工程高级课程;围绕软件工程应用领域,建设领域相关课程。南京大学的“软件工程与计算”、“计算系统基础”和“操作系统”是国家级精品课程,“软件需求工程”、“软件过程与管理”是教育部-IBM精品课程,软件工程专业工程化实践教学体系和人才培养体系分别获得第五届与第六届高等教育国家级教学成果奖。
此次集中出版的五本教材是软件工程专业课程建设工作的第二波,包括《软件工程与计算卷》的全部三分册(《软件开发的编程基础》、《软件开发的技术基础》、《团队与软件开发实践》)和《软件工程高级技术卷》的《人机交互——软件工程视角》与《软件过程与管理》。其中《软件工程与计算卷》围绕个人小规模软件系统、小组中小规模软件系统和模拟团队级中规模软件产品构建实践了CC-SE2004软件工程优先的基础课程方案;《人机交互——软件工程视角》是为数不多的“人机交互的软件工程方法”教材;《软件过程与管理》则结合了个人级、小组级、组织级的软件过程。这五本教材在教学内容组织上立意较新,在国际国内可供参考的同类教科书很少,代表了我们对软件工程专业新课程教学的理解与探索,因此难免存在瑕疵与谬误,欢迎各位读者批评指正。
本教材系列得到教育部“质量工程”之软件工程主干课程国家级教学团队、软件工程国家级特色专业、软件工程国家级人才培养模式创新实验区、教育部“十二五本科教学工程”之软件工程国家级专业综合教学改革试点、软件工程国家级工程实践教育基地、计算机科学与软件工程国家级实验教学示范中心,以及南京大学985项目和有关出版社的支持。在本教材系列的建设过程中,南京大学的张大良先生、陈道蓄先生、李宣东教授、赵志宏教授,以及国防科学技术大学、清华大学、中国科学院软件所、北京航空航天大学、浙江大学、上海交通大学、复旦大学的一些软件工程教育专家给出了大量宝贵意见。特此鸣谢!
南京大学软件学院
2012年10月