课程大纲

课程名称

软件工程项目化开发/Software Engineering Project Development

学分/学时

2/32

课程类型

必修

先修课程

软件工程基础、Python基础、面向对象程序设计、数据库原理、HTML5基础、Java基础等

1

课程的性质、目的与任务

《软件工程项目化开发》是计算机/软件工程专业的一门工程性基础课程,在软件工程学科人才培养体系中占有重要的地位。软件工程学是用以指导软件人员进行软件的开发、维护和管理的科学,而软件开发是建立计算机应用系统的重要环节,人们通过软件工程学把软件开发纳入工程化的轨道。《软件工程项目化开发》已成为高等学校计算机软件教学体系中的一门核心课程。

本课程以IEEE最新发布的软件工程知识体系为基础构建内容框架,注重贯穿软件开发整个过程的系统性认识和实践性应用,以当前流行的统一开发过程、面向对象技术和UML语言作为核心,密切结合软件开发的先进技术、最佳实践和企业案例,力求从“可实践”软件工程的角度描述需求分析、软件设计、软件测试以及软件开发管理,使学生在理解和实践的基础上掌握当前软件工程的方法、技术和工具。

通过本课程的学习,要求学生能掌握开发软件项目的工程化的方法和技术及在开发过程中应遵循的流程、准则、标准和规范等;学生应能掌握开发高质量软件的方法,以及有效地策划和管理软件开发活动,为学生参加大型软件开发项目打下坚实的理论基础。

本课程注重培养学生理论应用于实践的能力,课堂上教师向学生讲述软件工程项目开发中的相关原理和概念,并通过课程设计,培养学生对整个软件开发过程的能力。本课程对提高学生的软件开发能力和项目管理能力有重要的现实意义。

2

教学内容及教学基本要求

1. 软件项目化开发绪论(2学时)

通过本章学习,对软件工程的基本概念与发展、软件生存周期各个阶段的活动以及软件生存周期模型予以了解,学习了软件生存周期各阶段常用的CASE工具。此外,也对Web应用、HTTP请求和前后端进行了一定的认识。

2.项目管理工具Microsoft Project(2学时)

通过本章学习,了解甘特图的概念和作用,掌握Microsoft Project的基本使用方法。

3.集成建模平台Enterprise Architect(6学时)

通过本章学习,了解了EA的主要功能,并对基本使用方法加以掌握,主要包括了UML图的绘制和双向工程的基本使用方法。

4. 软件数据模型建模工具PowerDesigner(2学时)

通过本章学习,了解了Power Designer的主要功能,并对基本使用方法加以掌握,包括业务处理模型、概念数据模型、逻辑数据模型和物理数据模型使用的方法。

5. 分布式版本控制系统Git(2学时)

通过本章学习,了解高效的分布式版本控制系统Git,并简要学习了Git相关指令,以及利用Git进行版本控制的策略,对相关方法进行了实践,包括本地或者远程版本库的初始化、用户授权配置、版本库授权、分支管理、冲突处理等。

6. 前端开发框架 Vue.js(4学时)

通过本章学习,了解了Vue.js框架的使用方法,并对其中部分的概念进行了一定的掌握,包括Vue实例与生命周期、数据绑定、组件化等。同时,还学习了Vue Route、Vuex和Axios,以更简洁的方式开发更强大的应用。

7. 后端开发框架 Django (4学时)

通过本章学习,了解了Django这一Web应用框架的使用方法,以真实开发顺序为引导,从创建项目开始,设计Model层与View层等不同功能模块,开发了一个基于论文检索系统的简单交互接口,一步步展示了Django的开发特性,了解它的具体功能点。

8. 软件测试工具(2学时)

通过本章学习,了解了软件测试的特点、分类和基本流程,学习了测试用例的设计方案,并掌握了Vue Test Utils 、Unit Test和Postman三个自动化测试工具的基本使用方法。在软件开发过程中,能够根据不同的测试内容,选择合适的测试工具对前后端的代码进行测试。

9. 项目部署 (2学时)

通过本章学习,了解了部署、服务器和Nginx的概念,并且还对如何将前后端代码分离部署进行学习。同时,也掌握了一种方式将前后端代码部署在一个服务器(端口)中。

10. 课程设计答辩(4学时)

利用本课程所学到的知识,开发一款小型的网站项目,并对网站功能进行答辩展示,以将理论知识应用到实际。

11.上机考试(2学时)

针对课程中的理论知识进行考核,检验学生的掌握程度。

3

教学方法

本课程教学方法以教师为主导的启发式讲授教学法为主,讨论(提问)式教学为辅,结合课外学习的教学方法。软件项目开发课程设计以学生动手开发项目为主,教师的启发式讲授教学法为辅,并结合讨论(提问)式教学,以及结合课外学习的教学方法。

1.本课程概念较多,因此教学形式以讲授方式为主。本课程拟采用多媒体PPT的教学方法,增加课堂信息,浅显通俗地对概念、定义和原理进行解释,增加教学的直观性,教学过程中注意各个知识点的关联性,以使学生更好地理解课程内容。

2.对课程中关键性概念、设计思想方面的问题可辅以课堂讨论的形式。

3.为加强和落实动手能力的培养,每章课后应安排作业,帮助学生学习和应用。

4

课内外教学环节及基本要求

本课程共32个学时,讲授13周,答辩和考察3周(每周2学时)。

课外学习要求:

1.做好课前预习,预习时以教材为主,了解相关的概念、定义、原理。预习中认真思考,以便带着问题主动地听课。

2.课后要复习,有余力的学生复习时还应阅读参考资料,认真整理课堂听课笔记。

3.要求学生课外自主学习,学生课外阅读的参考资料以本大纲所列参考资料为主。

5

考核内容及方式

本课程成绩由平时成绩和期末考核成绩组合而成,课程成绩以百分制计算,分配比例如下:

1.平时成绩占70%,主要考查作业的完成程度,理论课和实验课的出勤率,实验课的考试结果。其中平时作业占15%,课程设计占50%,出勤率占5%。

2.期末成绩占30%,采用上机考试的考核方式。考试采用开卷形式,题型为选择题、判断题、填空题、简答题及应用题。

6

持续改进

本课程根据学生组队完成课程设计、课堂讨论、平时考核情况、课后作业以及学生、教学督导等反馈,及时对教学中不足之处进行改进,并在下一轮课程教学中改进。

7

建议教材及参考资料

建议教材:

[1] 吕云翔,黎可为,张中基. 软件工程项目化教程[M]. 北京:清华大学出版社,2023.

参考资料:

[1] 吕云翔. 软件工程基础(题库+微课视频版)[M]. 北京:清华大学出版社,2022.

[2] 吕云翔,赵天宇. UML面向对象分析、建模与设计(第2版,微课视频版)[M]. 北京:清华大学出版社,2021.

参考书籍

《软件工程项目化教程(微课视频版)》

作者:吕云翔,黎可为,张中基

定价:59.80元

扫码优惠购书

内容简介

本书依据典型的软件开发过程组织内容,围绕“论文检索系统”这一实际软件项目设计项目开发实验,旨在培养读者应用软件开发工具和框架进行实际软件项目开发的实践能力。

全书共9章,涉及软件工程理论与发展、软件设计与分析、软件开发、软件测试和代码管理等方面的内容。每章将根据不同工具或框架的特点对其进行详细的介绍,包括软件的基本介绍、版本信息、功能用途、使用步骤、拓展延伸等;每章的最后都配有相关的思考题和实验题,同时还附有本章的参考文献,帮助学生消化理解本章知识和拓展思路。

所涉及的软件开发工具和框架包括:项目管理工具Microsoft Project,集成建模平台Enterprise Architect,软件数据模型建模工具PowerDesigner,分布式版本控制系统Git,前端开发框架Vue.js,后端开发框架Django,软件测试工具Vue Test Utils、Unit Test、Postman,服务器软件Nginx。

目录

向上滑动阅览

第1章 绪论

1.1 软件工程概述

1.1.1 软件工程的概念与理论

1.1.2 软件工程的发展

1.1.3 软件生命周期

1.1.4 软件生命周期模型

1.1.5 软件工程实用工具

1.2 网络应用程序的开发

1.2.1 网络应用程序

1.2.2 前端和后端

1.3 “论文检索系统”案例介绍

1.3.1 项目背景

1.3.2 需求说明

1.3.3 系统要求

1.4 小结

1.5 习题

1.6 参考文献

第2章 项目管理工具Microsoft Project

2.1 概述

2.2 基本操作

2.2.1 界面说明

2.2.2 视图

2.2.3 日程表

2.2.4 甘特图

2.3 绘制“论文检索系统”的甘特图

2.3.1 设置项目信息

2.3.2 输入计划内容

2.3.3 审查任务进度

2.4 小结

2.5 习题

2.6 参考文献

第3章 集成建模平台Enterprise Architect

3.1 概述

3.1.1 统一建模语言UML

3.1.2 Enterprise Architect

3.2 基本使用

3.2.1 操作面板介绍

3.2.2 创建一个EA项目

3.3 绘制“论文检索系统”的用例图

3.3.1 基本概念

3.3.2 创建用例图

3.3.3 绘制用例图元素

3.4 绘制“论文检索系统”的类图

3.4.1 基本概念

3.4.2 创建类图

3.4.3 绘制类图元素

3.5 绘制“论文检索系统”的顺序图

3.5.1 基本概念

3.5.2 创建顺序图

3.5.3 绘制顺序图元素

3.6 绘制“论文检索系统”的状态图

3.6.1 基本概念

3.6.2 创建状态图

3.6.3 绘制状态图元素

3.7 绘制“论文检索系统”的活动图

3.7.1 基本概念

3.7.2 创建活动图

3.7.3 绘制活动图元素

3.8 绘制“论文检索系统”的通信图

3.8.1 基本概念

3.8.2 创建通信图

3.8.3 绘制通信图元素

3.9 绘制“论文检索系统”的组件图

3.9.1 基本概念

3.9.2 创建组件图

3.9.3 绘制组件图元素

3.10 绘制“论文检索系统”的部署图

3.10.1 基本概念

3.10.2 创建部署图

3.10.3 绘制部署图元素

3.11 绘制“论文检索系统”的包图

3.11.1 基本概念

3.11.2 组织项目目录

3.11.3 创建包图

3.11.4 绘制包图元素

3.12 双向工程

3.12.1 正向工程

3.12.2 逆向工程

3.13 小结

3.14 习题

3.15 参考文献

第4章 软件数据模型建模工具PowerDesigner

4.1 概述

4.2 基本使用

4.3 构建业务处理模型

4.4 构建“论文检索系统”的数据模型

4.4.1 构建概念数据模型

4.4.2 构建物理数据模型

4.5 模型的转换

4.5.1 概念数据模型CDM转换为逻辑数据模型LDM

4.5.2 概念数据模型CDM转换为物理数据模型PDM

4.5.3 物理数据模型PDM转换为数据库

4.6 小结

4.7 习题

4.8 参考文献

第5章 分布式版本控制系统Git

5.1 概述

5.2 Git Bash

5.3 远程仓库

5.3.1 选择远程仓库

5.3.2 在网页端创建远程仓库

5.3.3 邀请成员

5.4 基本使用

5.4.1 代码的修改与提交

5.4.2 将远程仓库同步到本地

5.5 分支

5.5.1 分支的概念

5.5.2 分支的管理

5.6 冲突

5.7 版本

5.7.1 回滚

5.7.2 标签

5.8 小结

5.9 习题

5.10 参考文献

第6章 前端开发框架Vue.js

6.1 概述

6.2 创建一个Vue项目

6.2.1 安装Vue

6.2.2 Vue项目

6.3 Vue实例与生命周期

6.3.1 Vue实例

6.3.2 Vue文件

6.3.3 选项参数与生命周期

6.4 数据绑定

6.4.1 Mustache插值

6.4.2 v-bind

6.4.3 v-model

6.4.4 v-on

6.4.5 v-if和v-show

6.4.6 v-text和v-html

6.4.7 v-for

6.5 Vue-Router

6.5.1 router-view和router-link元素

6.5.2 路由设置

6.5.3 路由跳转

6.6 组件化

6.6.1 引入和注册组件

6.6.2 组件间的通信

6.6.3 slot(选读)

6.6.4 用UI库丰富自己的网站

6.7 Vuex

6.7.1 设置Vuex

6.7.2 state

6.7.3 getters

6.7.4 mutations

6.7.5 action

6.7.6 module

6.8 利用Axios发送请求

6.8.1 安装并全局引入Axios

6.8.2 使用Axios发送HTTP请求

6.9 Vue配置文件

6.10 小结

6.11 习题

6.12 参考文献

第7章 后端开发框架Django

7.1 概述

7.2 配置环境

7.2.1 安装Python

7.2.2 创建项目文件夹

7.2.3 安装Django

7.3 Django项目

7.3.1 创建项目

7.3.2 运行项目

7.4 应用

7.5 模型层

7.5.1 创建数据库表

7.5.2 数据库迁移

7.5.3 Admin管理系统

7.6 视图层

7.6.1 数据库操作

7.6.2 请求处理函数

7.6.3 注册URL

7.6.4 CSRF

7.6.5 请求处理函数的优化(选读)

7.7 模板层

7.8 项目设置

7.8.1 ALLOWED_HOST

7.8.2 INSTALLED_APPS

7.8.3 MIDDLEWARE

7.8.4 TEMPLATES

7.8.5 DATABASES

7.8.6 AUTH_PASSWORD_VALIDATORS

7.9 小结

7.10 习题

7.11 参考文献

第8章 软件测试工具

8.1 概述

8.1.1 软件测试

8.1.2 软件测试的特点

8.1.3 软件测试的分类

8.2 Vue Test Utils

8.2.1 安装并执行Vue Test Utils

8.2.2 编写简单的测试脚本

8.2.3 包裹器

8.2.4 异步加速测试

8.2.5 等待DOM结点更新

8.2.6 等待Axios请求或复杂的异步行为

8.2.7 模拟请求结果

8.3 Unit Test

8.3.1 Unit Test的组成元素

8.3.2 编写简单的测试脚本

8.3.3 结合Selenium工具进行Web自动化测试(选读)

8.4 Postman

8.4.1 安装并执行Postman

8.4.2 利用Postman测试接口

8.4.3 请求记录

8.5 小结

8.6 习题

8.7 参考文献

第9章 项目部署

9.1 概述

9.1.1 部署

9.1.2 云服务器

9.1.3 跨域请求

9.2 配置云服务器

9.2.1 购买云服务器

9.2.2 连接服务器

9.3 Nginx

9.3.1 安装和运行Nginx

9.3.2 Nginx配置文件

9.4 前端部署

9.4.1 设置Axios跨域请求

9.4.2 构建生产环境的代码

9.4.3 上传代码文件到服务器

9.4.4 修改Nginx配置文件

9.5 后端部署

9.5.1 开放跨域请求

9.5.2 测试项目运行

9.5.3 uWSGI

9.5.4 Nginx+uWSGI部署

9.5.5 配置文件启动uWSGI

9.6 将前后端部署在同一端口

9.6.1 配置Django

9.6.2 配置uWSGI

9.6.3 配置Vue

9.6.4 运行服务器

9.7 小结

9.8 习题

9.9 参考文献

在公众号书圈后台回复【9787302624134】,下载本书配套的教学资源

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论

微信小程序

微信扫一扫体验

立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部