一、课程目标
1、理解商业软件项目的开发流程、各个环节设定的岗位、这些岗位之间的联系与区别、以及这些岗位的专业技能要求。
2、掌握需求分析的基本技巧及边界把控。
3、掌握实施技术路径选择方法,理解架构设计的重要作用。
4、理解测试方法论,掌握基本测试技巧。
5、理解软件生产环境与基于虚拟化技术的软件部署维护实施方法。
二、实施项目选择
1、每名同学选用自己的毕业论文作为专业实习的项目。
2、也可以选择开源前后台分离的Vue+SpringBoot项目作为基础框架,在此基础上自己拟定满足本课程要求的应用项目。
3、原则上所有同学的题目必须是不同的,以达到独立承担软件项目能力训练的课程目标。
三、教学进度安排
Week1
完成需求分析和技术选型。
Week2
软件开发、开发测试、部署、线上测试。
Week3
软件开发、开发测试、部署、线上测试。
Week4
撰写实习报告、答辩。
四、专业实习报告格式与要求
(这里的格式与要求完全适用于软件开发类项目、个别同学的非传统软件开发类项目单独要求)。
第一章 项目背景
第一节 应用需求
第二节 同类软件调研分析
第三节 相关论文调研总结
第二章 需求分析与实现技术选型
第一节 总体业务流程
需要有业务流程图、业务应用场景的文字描述
第二节 业务需求1
需要有业务流程图、业务应用场景的文字描述
第n节 业务需求n
需要有业务流程图、业务应用场景的文字描述
第n+1节 原型设计
包含原型设计工具选择、对应于也业务功能的原型界面
原型设计原则1(这里的内容不要copy到文档中)
设计原型时所有数据使用自定义的数据生成静态网页、不需要考虑和后台真实数据连接,举例说明。
举例一、假定我们的系统有两类用户,一类用户为管理员、另一类为普通用户,两类用户登录系统后所呈现的页面是不同的,那么:
1、我们设计两个网页:一个网页上直接写上某个假定的管理员用户名和密码,另一个网页直接写上某个假定的普通用户的用户名和密码。
2、分别点击这两个页面上的登录按钮,将分别跳转到对应的系统页面。
举例二、假定我们需要展示某个用户的订单列表,那么:
我们设计相应页面,在这个页面上静态的写上多条订单数据即可,这些数据是事先“编”出来的、而不是从数据库查询出来的。
原型设计原则2(这里的内容不要copy到文档中)
原型中页面基本上不能在后续的开发中复用,因为原型通常是需求开发人员交流的工具,所以在原型设计阶段考虑的是快速的画出界面而不是页面代码的复用。
第n+2节 实现技术选型
包含数据库、开发语言、IDE、前后端应用框架(如SpringBoot等)、测试方法、部署方案。
技术选型方案1:后端框架使用SpringBoot,使用IDEA作为IDE;数据库选用Mysql;前端框架使用Vue;分模块单元测试+集成测试;部署在Linux(Ubuntu)虚拟机中。
技术选型方案2:后端框架使用SpringBoot,使用IDEA作为IDE;数据库选用Mysql;前端框架使用Thymeleaf作为模板引擎+Jquery;分模块单元测试+集成测试;部署在Linux(Ubuntu)虚拟机中。
此外,所有学生必须根据课堂要求选择数据库、JDK、IDE、前后端应用框架的指定版本。
第三章 软件开发
根据学生的学业情况,软件开发环节采用根据构思先开发测试、待测试完成后再写设计方案、最后再根据设计方案修订软件的方式进行。
整个系统分为多个模块,如类电商的web系统中需要用户管理模块、订单管理模块、商品管理模块等。
第一节 模块1
1. 程序流程
包含文字描述和流程图,其中流程图类似下图,
2. 实现类、关键方法说明
为实现模块1的功能,需要设计哪几个类、以及类名称,关键方法完成的功能说明。
3. 数据库表设计
需要绘制E-R图。
第n节 模块n
1. 程序流程
2. 实现类、关键方法说明
3. 数据库表设计
第四章 软件测试
本部分内容是单独成章的,但在实施过程中和软件开发同时进行的,其中线上测试是在软件部署实施之后进行的。
第一节 单元测试
1. 模块1
根据每个模块的程序流程图撰写测试用例,测试完成后要有结论。
n. 模块n
第二节 集成测试
根据总体业务流程测试软件的核心功能是否存在bug,需要有完备的测试用例。这里的测试用例是总体流程、和模块测试是有区别的。
第三节 线上测试
部署到服务器后进行的集成测试。
第五章 软件部署实施
(下里的内容不要copy到文档中)
以Linux(Ubuntu)虚拟机作为服务端,将开发完成的程序打jar包部署到虚拟机上,
Java项目:
mvn clean package -Dmaven.test.skip=true
NodeJS项目:
npm run build:prod
然后使用命令行启动整个web程序。
Java项目:
java -jar ***.jar --spring.datasource.password="***" --server.port=1090
其中--server.port是从命令行传递启动参数到web程序
NodeJS项目:
将NodeJS编译后的静态页面放到apache2服务器的主目录中(/var/www/html/)。
其中, 1、Linux(Ubuntu)虚拟机安装开发阶段相对应版本的JDK、nodejs、npm、redis。
2、需要将上述命令转换成后台运行模式。
第一节 服务器环境准备
以虚拟机代替物理服务器,
1、描述虚拟机的网络、CPU、内存设置。
2、虚拟机中安装软件及其版本。
第二节 部署
1、部署方法,包括程序打包、在Linux环境中运行的命令。
2、访问web页面的地址。
第三节 录制视频
将开发完成后的作品打包、上传、部署、线上测试的过程录制视频。
1、对于vue项目可以不部署到服务器端直接在IDEA运行。
2、其他非纯软件开发项目也必须有作品展示视频。