图书前言

前    言

高校软件类、信息类专业都会学到软件工程学。目前市面上关于软件工程的教材很多,但大都是从理论上教学,实践的比较少。言若金叶软件研究中心编写的《软件工程导论实践指南》是以软件工程核心理论为指导,以具体的软件项目研发为实例,介绍软件的需求、建模、设计、编程、测试,直至部署,让读者在具体的实践中体会软件工程。

《软件工程导论实践指南》根据目前高校的教学和课程设置的实际情况,选择Java和ASP.NET两个方向进行编写。为了便于学生理解,Java方向选用“大学学籍管理系统”,ASP.NET方向选用“IBloger博客系统”。两个系统都力图用最简单的功能与实现来展现软件工程的基本过程。

1.本书特点与涉及的内容

本书以实际项目为原型,以关键的理论与丰富的实践为指导,贯彻先进的项目管理理念与全程质量管理思想,通过具体的实例,介绍软件工程每个阶段的目标和使用方法与技术,以及在软件行业中的各个职位,如产品经理PM、工程师经理EM、开发工程师DEV、软件质量保证工程师QA、人力资源管理师RM等,在软件各环节中所起的作用、主要做的事务。

本书包含众多软件从业人员多年工作经验的总结,再加上软件培训中心和高校教师与学生的共同参与和实践,使它最终成为一本很好的实践指导攻略书。

本书涉及的主要内容有:

(1)从理论上阐述了软件工程的基本概念、基本原理、软件的生命周期、软件模型以及软件工程的常见定义,使读者对软件工程有个整体概念性的了解,为后面软件工程实践打下理论基础。

(2)软件工程项目启动之前的可行性研究,结合实践项目介绍可行性研究的目的与意义,以及可行性研究的具体内容。

(3)以实践项目为出发点,介绍软件项目的需求分析。通过本章的学习,读者可以了解如何进行项目的需求分析,以及需求分析需要注意哪些事项。

(4)在项目实施时,对发生的成本和效益进行详细分析。

(5)通过绘制数据流图、数据字典、实体关系图,对项目进行结构化分析。在本章中,读者可以学到软件项目中各种常见图形的画法。

(6)基于面向对象,对实践项目进行需求分析。面向对象是软件工程中的重点内容。

(7)结合目前流行的UML、Rose、EA,对实践项目进行分析建模。

(8)介绍项目实施前,如何制订计划,以及项目团队建设。

(9)在项目实施阶段,阐述如何进行项目的整体设计和详细设计。详细设计的主要任务和基本原则;以实践项目为指导,介绍项目的数据库设计、代码设计和用户界面设计。通过本章的学习,使读者能够掌握具体项目实施中,如何自己独立进行项目设计。

(10)常用编程工具的使用介绍,结合实践来介绍项目设计的风格特点,以及如何对实践项目进行详细的代码编写。

(11)详细介绍测试计划的编写。

(12)通过各种类型测试用例—单元测试、集成测试、确认测试、系统测试、验收测试,深入学习各种测试用例的方法。测试是软件工程中不可缺少的部分,它是软件质量的重要保证。目前国内对专业的软件测试越来越重视。

(13)从项目管理的角度阐述项目过程中的进度管理、风险管理以及质量管理。通过项目管理程序Project 2007的介绍,阐述在实践项目中如何进行管理。

(14)介绍项目在完成之后,如何部署到客户机器。

(15)项目后期的技术评审与质量维护。

通过本书的学习,读者可以由浅入深地掌握软件工程的理论知识,基本流程,以及在每个阶段需要做什么和怎么去做。此外,您还将了解:

(1)什么是软件工程?

(2)软件工程的基本原理是什么?

(3)项目可行性研究的内容是什么?

(4)如何进行项目需求分析?

(5)项目实施过程中常见的数据图有哪些?

(6)如何基于面向对象进行分析?

(7)如何组织项目团队?

(8)如何制订项目计划?

(9)如何对项目进行总体设计和详细设计?

(10)如何编写代码?

(11)如何进行项目测试?

(12)如何通过管理工具对项目进行管理?

(13)如何评估项目质量?

(14)软件项目是如何部署的?

(15)软件项目后期需要哪些维护?

我们还为每本书提供配套的软件或源程序供下载,读者在本机安装后,可以继续进行开发和测试,通过一系列的实践,使读者熟练掌握软件开发流程。

《软件工程导论实践指南》是从工程学的角度来阐述软件生命周期的整个过程,以及在各个过程中每个参与的成员在做什么,要达到什么样的目标,各个团队成员如何协作来共同完成软件产品从有最初的想法(概念),到最终的产品正式发布经历哪些过程与环节,各个里程碑的关键路径。

每一个环节需要什么样的输入,经过这个环节有什么样的输出(可检查的显性成果,包括技术文档、软件、缺陷跟踪、进度跟踪等)。本环节的输出是下一个环节的有效输入,下一环节根据上一环节的输入,再进行深加工,然后将最后成果带入更下面一个环节,环环相扣,逐步推进,最终到整个项目的完成。

让每一位读者,清晰地认识到:我如果想从事软件行业,我应该担任什么职位(PM,EM,RM,DEV,QA)比较合适,每一个职位需要什么样的知识素养;软件过程每一个环节需要各个人做什么,达到什么样的结果可以进入下一个环节;如何检验项目成功与项目失败。

本篇采用大学学籍管理系统进行阐述。

我们的目标:让每一个人都能进入到软件项目中,根据各人的特长,从事不同的角色,完成不同的任务,共同为软件项目服务。

2.主要作者与贡献人

本篇由王顺策划与主编,汪红兵、盛安平、吴治为副主编,王顺和盛安平负责主审。

作者:第1章由盛安平编写,第2章由王莉编写,第3章和第4章由王顺、李海峰编写,第5章由李海峰、黄百乔编写,第6章由盛安平、王莉编写,第7章由王顺、薛平蛟编写,第8章和第9章由王顺、汪红兵、薛平蛟编写,第10章由汪红兵、薛平蛟编写,第11章由盛安平、王莉、吴治、恽菊花、高轶编写,第12章由黄晓航、乔玉婷编写,第13章由恽菊花、高轶编写。

Java EE篇配套软件是由汪红兵与薛平蛟带领Java EE方向开发团队完成。

3.软件工程实践者

中心书籍的实践者主要来自三个方面:软件工程师从行业的角度来看配套软件是否符合标准,书中的理念、选材是否能很好地引导学生进入软件行业;高校教师与软件培训中心教师,主要考虑是否方便教学与学生自学;在校本科、硕士、博士从学生的角度看是否容易理解,能否学到动手实践的本领。参加书籍阅读与实践的成员有:安徽财贸学院计算机系的朱金娜,中澳学院日语方向的张玉,合肥工业大学会计学方向硕士邢璐,资深软件工程师张玲,资深教育管理师黄德垚,网站媒体采编闫蕊,合肥工业大学信息管理与信息系统方向硕士许绍斌、张芹,同济大学博士安徽财经大学副教授陈涛,山西师范大学历史学方向李艳琳。

4.内部三轮审阅与合成人员

第一轮:Roy,Sky,Scott,Kate,Nimon,Berid,Terry,Sammy,Happybuaa

第二轮:Roy,Sky,Kate,Sammy

第三轮:Roy,Sky,Scott

5.书籍配套软件的安装与使用

本篇附录A—大学学籍管理系统安装配制说明书详细说明了软件的安装方法;附录B—大学学籍管理系统产品规格说明书V1.0详细说明大学学籍管理系统的主要功能与使用方法。

6.学生动手实践空间

本篇的附录C—大学图书管理系统产品需求文档(PRD)V1.0与附录D—大学图书管理系统产品规格说明书(SPEC)是提供给学习本书的学生按项目运行过程来组织,从需求→建模→设计→编程→测试→部署与维护,在这过程中注意采用软件工程导论的方法和工具。任课教师也可以让学生自己选择熟悉的项目,实际动手演练一下,作为本课程结束时的课程设计。

7.致谢

感谢清华大学出版社提供的这次合作机会,使本实践教程能够早日与大家见面。

感谢团队成员的共同努力,因为大家都为一个共同的信念“为加快祖国的信息化发展步伐而努力!”而紧密团结在一起。感谢团队成员的家庭,是家庭和朋友的无私关怀和照顾,最大限度的宽容和付出成就了今天这一教程。

书中罗列了所有为本书的出版做出贡献的作者与实践者简历,主要技能,以及对知识的追求、对人生的感悟,希望能为每一位想从事软件行业的成员指明方向。

由于作者水平与时间的限制,本书难免会存在一些问题,如果在使用本书过程中有什么疑问,请发送E-mail到tsinghua.group@gmail.com或roy.wang123@gmail.com,作者及其团队将会及时给予回复。

8.后记

您也可以到中心的官网www.leaf520.com进行更深层次的学习与讨论,在言若金叶软件研究中心官网,您可以:

(1)了解中心最新的动态。

(2)掌握中心最新的专著进展情况。

(3)报名参加中心的软件工程师培训。

(4)报名参加中心软件工程师认证。

(5)报名参加中心软件实训与外包,锻炼自己能力的同时获得应有报酬。

(6)加入中心会员,或者直接加入中心,成为中心的一员,共同体验成长的快乐。

(7)加入中心软件各领域QQ群,和其他高手或同学一起探讨学习困难与成长经验。

(8)加入中心软件外包QQ群,由资深工程师与项目管理师带领您参与国际软件外包。

一切成就,只因有你!相信追求梦想的力量!

王顺             

2012年7月于中国黄山