软件工程已经由当初仅为少数拥护者所实践的朦胧思想演化成一门正式的工程学科。现在,它已被认为是一个值得认真研究,细心学习和热烈争论的主题。本书主要阐述了与软件工程相关的基本理论概念、软件工程的设计与开发、软件工程师的指南及实际案例分析。本书并不是只追求软件工程理论的前沿,而是一本为培养能胜任软件开发和应用工作的实用型、复合型人才的应用性书籍。
本书共分6篇,其中第一、二篇为后续各章的准备知识,为读者介绍了关于软件、软件工程及软件开发方法的基础。
第三篇包括6章,以软件工程的生命周期为核心,分别介绍软件项目团队组建、制订计划和管理、需求分析、设计、编码、测试和维护。从各软件设计开发过程中,介绍开发现场的实战案例经验与注意事项。第四篇介绍软件质量保证,提出建立一套计划,有系统的方法及完备的设计文档、评审,并通过拟定出的标准、步骤、实践、方法等,来确保软件的质量。
在整个行业中,“软件工程师”已经代替了“程序员”而成为更受欢迎的工作头衔。本书第五、六篇将通过以下几个方面来分析软件工程师的本质,并分析实际的案例。
(1) 软件工程师要与软件开发企业内各部门共同合作来构建系统,应使与软件工程师密切相关的部门都能充分理解软件工程师的工作内容。
(2) 软件工程师为负责系统开发的总负责人。系统开发具有从需求分析到维护的软件工程生命周期。
(3) 软件工程师需要负责构建出客户所希望、令客户满意的系统。因这个目标的实现,基本决定在上游工程的需求分析和设计阶段,所以软件工程师的责任重大。\软\件\工\程\与\开\发\技\术\/前 言/
(4) 软件工程师要理解客户的需求,并且进一步发现隐含的需求。
(5) 开发系统时,需制作各工程文档,去除文档中模糊不清的部分,以回避争议。
(6) 阐述客户的交货和验收、系统移交运行、维护团队时软件工程师所起的作用。
(7) 软件工程师要尽量通过正确且易理解的讲解,才能在加深理解客户的需求的同时也能使客户理解有关开发系统的事宜。
(8) 软件工程师不仅是系统设计人员,更重要的是指挥项目团队起领导作用的项目经理,并肩负着制订计划、管理开发团队的责任。
(9) 高级软件工程师为了实现满足客户需求的系统,从安全和优化设计到项目管理与计划管理,都需要很多知识。不断地学习和适当地实践,才能使一名普通的软件工程师走向高级软件工程师的道路。
IT技术在日新月异地发展,已经具有充分知识的软件工程师,用不了多少时间知识就会变得陈旧。为了给客户提供满意的系统,就需要作出磨炼自己技术和能力的不懈努力。对初学的本科生与研究生,本书所实施的授课已得到学生就职所在企业广泛好评。企业的反馈评价说明学过本书的学生在企业中表现突出,对软件开发流程等理解深刻、得心应手,可节省很多对企业新人的培养和教育,学生似乎已有两三年的企业软件开发及管理知识与经验。同时学生进入企业后懂得自己的努力方向,知道自己要去学习什么,从而使学生能尽快进一步提高个人业务水平,为加快实现走向高级软件工程师的目标,奠定了较为坚实的理论与实践的基础。本书若能给读者带来收获和帮助,编者将非常荣幸。
由于时间仓促,书中疏漏之处在所难免,恳请广大读者批评指正。
编者 张凯2011年10月