
本书依据软件开发工作和管理工作对知识和能力的需求来选择和组织内容,重点介绍了“做软件”的方法、过程和工具,注重强调工作任务和岗位能力与知识的联系。全书将软件开发和管理分解为相对独立的若干个任务,并用一个大的案例贯穿所有任务,充分体现了工作过程的完整性。每个任务主要由任务概述、任务目的、能力与知识要求、工作计划、角色与活动、工作方法和工具、任务小结、思考与练习、课后实践等部分组成。
本书可作为高职高专计算机及相关专业的软件开发与管理或软件工程类专业的教材,也可供从事计算机软件开发及应用的广大科技工作者参考。
我国高职高专教育经过近十年的发展,已经转向深度教学改革阶段。教育部2006年12月发布了教高\16号文件“关于全面提高高等职业教育教学质量的若干意见”,大力推行工学结合,突出实践能力培养,全面提高高职高专教学质量。
清华大学出版社作为国内大学出版社的领跑者,为了进一步推动高职高专计算机专业教材的建设工作,适应高职高专院校计算机类人才培养的发展趋势,根据教高\16号文件的精神,2007年秋季开始了切合新一轮教学改革的教材建设工作。
目前国内高职高专院校计算机网络与软件专业的教材品种繁多,但切合国家计算机网络与软件技术专业领域技能型紧缺人才培养培训方案并符合企业的实际需要、能够成体系的教材还不成熟。
我们组织国内对计算机网络和软件人才培养模式有研究并且有过一段实践经验的高职高专院校,进行了较长时间的研讨和调研,遴选出一批富有工程实践经验和教学经验的双师型教师,合力编写了这套适用于高职高专计算机网络、软件专业的教材。
本套教材的编写方法是以任务驱动案例教学为核心,以项目开发为主线。我们研究分析了国内外先进职业教育的培训模式、教学方法和教材特色,消化吸收优秀的经验和成果。以培养技术应用型人才为目标,以企业对人才的需要为依据,把软件工程和项目管理的思想完全融入教材体系,将基本技能培养和主流技术相结合,课程设置中重点突出、主辅分明、结构合理、衔接紧凑。教材侧重培养学生的实战操作能力,学、思、练相结合,旨在通过项目实践,增强学生的职业能力,使知识从书本中释放并转化为专业技能。
一、 教材编写思想
本套教材以案例为中心,以技能培养为目标,围绕开发项目所用到知识点进行讲解,对某些知识点附上相关的例题,以帮助读者理解,进而将知识转变为技能。
考虑到是以“项目设计”为核心组织教学,所以在每一学期配有相应的软件开发与管理出版说明实训课程及项目开发手册,要求学生在教师的指导下,能整合本学期所学的知识内容,相互协作,综合应用该学期的知识进行项目开发。同时在教材中采用了大量的案例,这些案例紧密地结合教材中的各个知识点,循序渐进,由浅入深,在整体上体现了内容主导、实例解析,以点带面的模式,配合课程后期以项目设计贯穿教学内容的教学模式。
软件开发技术具有种类繁多、更新速度快的特点。本套教材在介绍软件开发主流技术的同时,帮助学生建立软件相关技术的横向及纵向的关系,培养学生综合应用所学知识的能力。
二、 丛书特色
本系列教材体现目前的工学结合教改思想,充分结合教改现状,突出项目面向教学和任务驱动模式教学改革成果,打造立体化精品教材。
1. 参照或吸纳国内外优秀计算机网络、软件专业教材的编写思想,采用本土化的实际项目或者任务,以保证其有更强的实用性,并与理论内容有很强的关联性。
2. 准确把握高职高专软件专业人才的培养目标和特点。
3. 充分调查研究国内软件企业,确定了基于Java和.NET的两个主流技术路线,再将其组合成相应的课程链。
4. 教材通过一个个的教学任务或者教学项目,在做中学,在学中做,以及边学边做,重点突出技能培养。在突出技能培养的同时,还介绍解决思路和方法,培养学生未来在就业岗位上的终身学习能力。
5. 借鉴或采用项目驱动的教学方法和考核制度,突出计算机网络、软件人才培训的先进性、工具性、实践性和应用性。
6. 以案例为中心,以能力培养为目标,并以实际工作的例子引入概念,符合学生的认知规律。语言简洁明了、清晰易懂、更具人性化。
7. 符合国家计算机网络、软件人才的培养目标;采用引入知识点、讲述知识点、强化知识点、应用知识点、综合知识点的模式,由浅入深地展开对技术内容的讲述。
8. 为了便于教师授课和学生学习,清华大学出版社正在建设本套教材的教学服务资源。在清华大学出版社网站(www.tup.com.cn)免费提供教材的电子课件、案例库等资源。
高职高专教育正处于新一轮教学深度改革时期,从专业设置、课程体系建设到教材建设,依然是新课题。希望各高职高专院校在教学实践中积极提出意见和建议,并及时反馈给我们。清华大学出版社将对已出版的教材不断地修订、完善,提高教材质量,完善教材服务体系,为我国的高职高专教育继续出版优秀的高质量的教材。
清华大学出版社
高职高专计算机任务驱动模式教材编审委员会
rawstone@126.com
2009年1月1日前 言
教育部十六号文件《关于全面提高高等职业教育教学质量的若干意见》中明确指出“加大课程建设与改革的力度,增强学生的职业能力,改革教学方法和手段,融‘教、学、做’为一体,强化学生能力的培养。加强教材建设,重点建设好约3000种国家规划教材,与行业企业共同开发紧密结合生产实践的实训教材,并确保优质教材进入课堂”。突出高职院校教材改革的方向是校企合作,通过引入企业项目和企业文化,增强学生探究和创新意识,提高综合运用技术、知识解决实际问题的能力。增进学校与企业的密切联系,培养学生的职业素质。
为了全面落实教育部十六号文件精神,本教材融入软件企业岗前培训理念,以项目为载体,以培养学生职业素养、岗位能力和项目经验为根本宗旨,重组课程教学内容。按软件项目开发和管理的工作过程选择教学内容,将教学内容分成:
任务1 构建一个软件开发工作环境。
任务2 从技术、经济和社会三方面论证项目可行性。
任务3 全面准确地描述软件应满足的需求。
任务4 依据需求和现有技术设计软件。
任务5 按照软件设计方案设计程序。
任务6 依据需求和设计测试软件。
任务7 发布软件和维护软件。
本书以一个典型案例贯彻整个教学过程,并按照创设企业环境和任务驱动的方法设计任务单元。教材打破传统体例和编排模式,每个任务主要由任务概述、任务目的、能力与知识要求、工作计划、角色与活动、工作方法和工具、任务小结、思考与练习、课后实践等部分组成,使之成为项目实践的“任务指导书”。本书注重引导学生掌握“团队协作、课内课外活动一体化”的学习方法,并指导学生运用软件开发技术、工具和手段开展项目实践活动,在项目实践活动中理解软件工程的技术知识。教材在多元智能理论的指导下,选择了多元化的评价方法,以促进教师教学方式和学生学习方式的变革。
本书的新意在于以业界通用的软件开发模式为背景,在学历教材中引入企业工作环境和岗位技能培训思想,融入作者多年进行软件开发、管理和教学的经验,有效突出高职教育的内涵是理论知识为实践应用服务这一基本原则。全书强调工作角色、职责及协作方法;注重灌输员工意识,培养团队精神,从而使学生可以在学校就积累工作经验。
本教材是常州轻工职业技术学院软件技术专业“软件项目的开发与管理”课程教学改革的成果之一,由陆兵主编;任务1由高佳琴编写,任务2、3、4、6由陆兵编写,任务5由周国华编写,任务7由乔明中编写,最后由束梅玲主审。
尽管编者尽了最大努力,但由于教学改革不可能一帆风顺,所以本书难免会有错误和疏漏存在,恳请与师生和各界朋友随时交流,修改完善。
作 者2009年1月软件开发与管理
任务1 构建一个软件开发工作环境1
1.1 任务概述1
1.1.1 任务目的1
1.1.2 工作计划1
1.1.3 工作过程2
1.2 通过各种渠道了解软件行业及软件企业2
1.2.1 认识软件从业人员,规划未来自我4
1.2.2 关于考试认证7
1.3 初识软件工程9
1.3.1 区分软件与程序9
1.3.2 区分软件项目与软件产品10
1.3.3 明确软件质量10
1.3.4 保证软件质量12
1.3.5 什么是软件工程13
1.4 了解软件工程的主要内容14
1.4.1 熟悉软件生存周期14
1.4.2 选择软件开发模型15
1.5 软件工程管理17
1.5.1 规划项目组织结构17
1.5.2 制订项目计划19
1.5.3 管理配置20
1.5.4 标准化文档23
1.6 讨论软件质量与软件工程之间的关系25
1.7 任务小结26
1.8 思考与练习26
1.9 课后实践(讨论)27
1.10 附件材料27
任务2 从技术、经济和社会三方面论证项目可行性33
2.1 任务概述33
2.1.1 任务目的33
2.1.2 工作计划33
2.1.3 工作过程34
2.2 明确问题定义34
2.3 分析论证36
2.4 开展可行性分析38
2.5 网上宠物商店可行性分析40
2.6 任务小结48
2.7 思考与练习48
2.8 课后实践(讨论)49
软件开发与管理任务3 全面准确地描述软件应满足的需求50
3.1 任务概述50
3.1.1 任务目的50
3.1.2 工作计划50
3.1.3 工作过程51
3.2 了解需求分析的任务与步骤51
3.2.1 需求分析面临着困难52
3.2.2 制定需求分析步骤52
3.2.3 明确角色与活动54
3.3 开展需求分析工作54
3.3.1 行业领域简介55
3.3.2 收集和分类需求56
3.3.3 初步整理需求57
3.4 描述问题域59
3.4.1 什么是模型60
3.4.2 了解UML61
3.5 构建用例模型62
3.5.1 绘制用例图62
3.5.2 区别用例与功能点67
3.5.3 宠物店的用例模型68
3.6 构建活动图71
3.6.1 活动图的组成结构72
3.6.2 理解几个实例72
3.6.3 添加泳道74
3.7 构建概念模型76
3.7.1 了解面向对象分析方法76
3.7.2 理解几个概念77
3.7.3 UML类图80
3.7.4 构建宠物店的概念模型81
3.8 编写需求规格说明书84
3.9 评审需求规格说明书87
3.10 管理需求变更89
3.11 学会使用辅助工具90
3.12 任务小结91
3.13 思考与练习91
3.14 课后实践(讨论)92
3.15 附件材料92
任务4 依据需求和现有技术设计软件98
4.1 任务概述98
4.1.1 任务目的98
4.1.2 工作计划98
4.1.3 工作过程99
4.2 了解设计软件的任务与步骤100
4.2.1 制定软件设计的步骤101
4.2.2 明确角色与活动101
4.3 设计软件的体系结构102
4.3.1 采用层次结构103
4.3.2 考虑设计约束105
4.3.3 宠物店的整体结构105
4.4 构建功能模型107
4.5 设计用户界面108
4.5.1 “美”的界面108
4.5.2 设计界面框架109
4.5.3 绘制界面效果图109
4.6 设计数据库110
4.7 设计模型对象114
4.8 表示层的组织结构117
4.8.1 设计边界类118
4.8.2 绘制边界类状态图119
4.8.3 设计界面构件类120
4.9 业务层的组织结构124
4.9.1 设计业务类124
4.9.2 考虑类的独立性125
4.10 数据访问层的组织结构126
4.11 确定类的行为和属性128
4.11.1 顺序图128
4.11.2 协作图129
4.11.3 初步定义类的方法和属性131
4.12 优化设计134
4.12.1 面向接口135
4.12.2 设计模式137
4.12.3 工厂模式137
4.12.4 策略模式139
4.12.5 外观模式139
4.13 构建包图141
4.14 编写软件设计报告和评审报告143
4.15 任务小结144
4.16 思考与练习144
4.17 课后实践(讨论)145
4.18 附件材料145
任务5 按照软件设计方案设计程序149
5.1 任务概述149
5.1.1 任务目的149
5.1.2 工作计划149
5.1.3 工作过程150
5.2 了解常用计算机语言150
5.3 常见软件开发工具157
5.4 常用的数据库160
5.5 选择计算机语言164
5.6 设计数据结构和算法164
5.7 编码规范165
5.7.1 命名规范165
5.7.2 注释规范167
5.7.3 书写和排版规范168
5.8 调试程序168
5.9 调试程序常用方法169
5.10 任务小结172
5.11 思考与练习173
5.12 课后实践(讨论)173
5.13 附件材料174
任务6 依据需求和设计测试软件178
6.1 任务概述178
6.1.1 任务目的178
6.1.2 工作计划178
6.1.3 工作过程179
6.2 测试前的准备工作179
6.2.1 明确测试及目的179
6.2.2 遵守测试原则180
6.2.3 确定测试流程181
6.2.4 区分测试类型182
6.2.5 制定测试通过标准183
6.2.6 角色与分工186
6.3 掌握测试技术187
6.3.1 静态测试技术188
6.3.2 黑盒测试技术188
6.3.3 白盒测试技术190
6.4 测试步骤191
6.5 设计黑盒测试用例193
6.5.1 设计单个文本框的测试用例193
6.5.2 边界值196
6.5.3 设计程序功能的测试用例196
6.5.4 再看一个例子198
6.5.5 从用例中生成测试用例199
6.6 设计白盒用例201
6.7 制订测试计划205
6.8 自动化测试209
6.9 任务小结211
6.10 思考与练习211
6.11 课后实践(讨论)212
6.12 附件材料212
任务7 发布软件和维护软件218
7.1 任务概述218
7.1.1 任务目的218
7.1.2 工作计划218
7.1.3 工作过程219
7.2 制作安装软件并部署软件219
7.2.1 角色与活动220
7.2.2 制作.NET安装应用程序220
7.3 维护软件222
7.3.1 为什么要维护222
7.3.2 有哪些维护222
7.3.3 维护工作变得困难223
7.3.4 维护软件的策略224
7.3.5 提高软件的可维护性225
7.4 实施软件维护228
7.5 软件维护的副作用229
7.6 逆向工程和再工程230
7.6.1 软件逆向工程230
7.6.2 软件再工程231
7.7 编写相关文档232
7.7.1 编写维护文档232
7.7.2 编写用户使用手册235
7.8 任务小结237
7.9 思考与练习237
7.10 课后实践(讨论)238
参考文献239