为缩短高校毕业生和企业岗位实际需求之间的差距,越来越多的高校开始建立校内和校外各种类型的实习实训基地,项目实训成为软件工程人才培养的一个重要途径。《软件项目实训》不是介绍某一门具体的技术,而是根据在校学生和企业岗位之间的差距,通过一系列的实训环节和讲座内容,让参加项目实训的学员将所学的软件工程知识形成体系,更多地了解企业的工作流程和文化,掌握规范文档的撰写,同时介绍企业软件人才职业素质的培养、软件人才的职业规划和面试技巧。
《软件项目实训》的主要内容是软件项目实训导论、项目组组建、职业素质、项目概述及环境搭建、项目开发计划、需求分析、概要设计、详细设计、编码与实现、系统测试、项目总结、求职与面试、软件人才职业规划与发展。《软件项目实训》收集了软件项目开发中所需要撰写的各种文档模板。
《软件项目实训》可作为高等院校软件工程和计算机等相关专业的本科生和研究生的课程设计、项目实践、项目实训教材,同时也可作为各培训机构项目实训和实习培训的教材。
随着我国软件产业的不断发展壮大,软件在当今信息社会中占的地位越来越重要,市场对各领域软件人才的需求越来越大,但是,尽管高校毕业生数量一年比一年增多,却因为缺乏实践工作经验而不能满足软件企业对实用型软件人才的大量需求。对于企业来讲,由于软件开发周期短,版本更新速度快,企业希望新进员工无需培训即能上岗,迅速展开实质性工作,为企业创造价值,因此要求企业和人才必须是“互动”的成长模式,高校培养人才时首先要考虑的就应该是企业的需要。这就要求学校在培养人才时更加注重实践,特别是模拟企业开发环境的项目实训,培养更多的u盘型人才,让学生毕业后能尽快地融人企业。
本书介绍的项目实训根据学生在学校和企业岗位之间的差距,通过一系列的实训环节和讲座内容,让软件学院学生将所学的软件工程知识形成体系,更多地了解企业的工作流程和文化,同时介绍企业软件人才职业素质的培养、软件人才的职业规划和面试技巧。帮助学生毕业后能够更好地适应工作岗位,发挥自己的潜力。学生在参加本项目实训之前,应具备一定软件开发基础,掌握c和c++编程语言和编程工具,熟悉面向对象程序设计、数据库、软件工程、软件测试等相关技术。
第1章 软件项目实训导论
1.1 软件人才培养目标
1.2 软件人才如何适应企业需求
1.3 实训培养模式
1.4 软件工程基本原理
1.5 实训项目软件生命周期
1.6 实训体系和教学安排
第2章 项目组组建
2.1 人员组成
2.2 如何分组
2.3 人员分工
2.4 项目组长推选
2.5 项目技术负责人推选
2.5.1 笔试题目1
2.5.2 笔试题目2
2.6 项目组会议及日报表
2.7 项目组规章 制度
第3章 职业素质
3.1 时间管理
3.1.1 时间特性
3.1.2 时间管理的四个象限
3.2 团队合作
3.2.1 何快速融入团队
3.2.2 团队合作三大资格
3.3 团队沟通技巧
3.3.1 团队沟通的优缺点
3.3.2 影响团队沟通的因素
3.3.3 团队的行为规范
3.3.4 团队沟通的障碍
3.3.5 团队沟通原则
3.4 职场礼仪
3.4.1 办公室礼仪
3.4.2 握手礼仪
3.4.3 道歉礼仪
3.4.4 电梯礼仪
3.4.5 垃圾桶礼仪
3.4.6 电话礼仪
3.4.7 介绍礼仪
3.4.8 递名片礼仪
3.4.9 见面礼仪
3.4.10 迎送礼仪
3.5 软件工程师职业道德规范
第4章 项目概述及环境搭建
4.1 需求引出
4.2 项目需求说明
4.2.1 项目概要
4.2.2 软件详细需求
4.3 项目开发环境
4.3.1 开发环境的搭建
4.3.2 文档编写工具
4.3.3 群组通信软件
4.3.4 编程开发环境
4.3.5 配置管理工具
4.4 配置管理
4.4.1 配置管理含义
4.4.2 配置管理的重要性
4.4.3 配置管理的内容
4.4.4 软件配置管理过程
4.4.5 配置管理员的职责
4.4.6 配置管理工具VSS
4.4.7 VSS的使用
第5章 项目开发计划
5.1 制定开发进度计划
5.2 甘特图与时间管理
5.3 项目开发计划书
5.2 甘特图与时间管理
5.3 项目开发计划书
第6章 需求分析
6.1 需求重要性
6.2 需求来源
6.3 需求规格说明书
6.3.1 需求规格说明的结构和内容
6.3.2 需求规格说明的特性
6.3.3 需求规格说明文档的编写要求
6.4 需求评审
6.4.1 需求审查的关键点
6.4.2 审查形式与过程
6.4.3 评审员的职责
6.5 需求变更控制与管理
第7章 概要设计
7.1 概要设计的任务
7.2 模块化
7.2.1 模块
7.2.2 模块化与逐步求精
7.2.3 模块的分割方法与原则
7.3 概要设计说明书
7.4 概要设计文档评审
第8章 详细设计
8.1 详细设计目标和任务要求
8.1.1 详细设计与概要设计的区别
8.1.2 详细设计的任务
8.1.3 详细设计的需求
8.2 详细设计说明书
8.3 详细设计文档评审
第9章 编码与实现
9.1 编码规范
9.1.1 关于文件结构
9.1.2 编辑风格
9.1.3 注释
9.1.4 符号名的命名
9.1.5 函数定义
9.2 用户界面设计
9.2.1 用户界面设计的原则
9.2.2 用户界面设计工作流程
9.2.3 用户交互方式
9.3 用户操作手册编写
9.3.1 何时撰写用户操作手册
9.3.2 用户操作手册模板
9.4 我需要编码吗?
第10章 系统测试
10.1 测试目的
10.2 测试分类
10.3 单元测试
10.4 集成测试
10.5 测试计划
10.6 实训项目的测试
10.6.1 测试用例编写规范
10.6.2 测试中错误级别的定义
10.6.3 软件测试暂停及停止标准
10.6.4 软件测试中需注意的问题
10.6.5 软件测试报告
第11章 项目总结
11.1 实训答辩申请
11.2 个人总结和项目组总结
11.3 项目总结评审
11.4 项目组和个人成绩评定
11.5 实训反馈
第12章 求职与面试
12.1 简历准备
12.1.1 简历撰写前的准备
12.1.2 如何撰写简历
12.1.3 简历的基本格式
……
第13章 软件人才职业规划与发展
附录 VSS安装与配置
参考文献
随着我国软件产业的不断发展壮大,软件在当今信息社会中占的地位越来越重要,市场对各领域软件人才的需求越来越大,因此各高校都在相关专业培养大量的软件开发人才。但软件产业发展迅速,要求企业和人才必须是“互动”的成长模式,而目前各高校软件人才的培养没有考虑企业的实际需求。我国的软件人才市场现状足毕业生富余而企业却招不到合适的实用型软件人才,市场上出现了非常奇怪的现象,一方面很多高校毕业生找不到合适的工作,另一方面很多软件企业找不到满意的员工。目前高校毕业生找工作难的主要原因是实践能力弱,不能满足企业的要求。解决此矛盾的方法是学校在培养人才时应更加注重软件项目实训,特别是模拟企业开发环境的软件项目实训,培养更多的u盘型人才,让学生在毕业时能掌握软件开发的各种技能,满足企业的需要,找到称心如意的工作,并能快速地融人企业。
1.基础知识和技能计划从事软件开发的毕业生应该熟练掌握软件工程知识与技能,并且具备作为软件工程师从事软件工程实践活动所需的各种专业能力。在教学计划中,每个学期应该有不同层次软件工程技能的教学和实践内容,经过正规的、循序渐进的强化学习和实践,学生的知识和技能将不断地积累和提高。同时,毕业生必须遵循职业的、经济的规范与社会伦理公德,要有强烈的职业责任感。
2.团队工作的能力任何一个软件项目都不可能由某一个个体单独来完成,它通常由一定规模的项目小组来完成,软件工程学科的毕业生不仅需要完成个人的工作任务,而且还需要与项目组其他成员协同工作,因此,软件人才必须具备个人工作与团队协作的能力,以便能够开发出高质量的软件产品。在各种实践和实训教学环节中,有意识地安排学生参加实际的软件开发项目小组的工作,让学生清楚地了解开发小组的性质、活动或角色,在每个项目小组中尽量能担任不同的角色。同时强调专门化训练的重要性,包括提交各项文档和成果的最后期限,同时注重沟通、个人与团队的绩效评估等方面的训练。
3.分析与解决问题的能力从事软件项目开发的毕业生应当能够协调各种相互冲突的项目目标,在成本、时间、知识、现有系统与组织环境等条件约束下找到适当的折衷方案。教学计划应当提供一些相关练习,要求学生面对相互矛盾和不断变化的需求时,能够完成高质量的需求分析和灵活的软件设计。这些练习应该具有真实环境的成分,以便学生获得真正的经验。