当前课程知识点:软件工程 >  第14章 软件交付与维护 >  14.1 软件部署与交付 >  讲课视频

返回《软件工程》慕课在线视频课程列表

讲课视频在线视频

下一节:讲课视频

返回《软件工程》慕课在线视频列表

讲课视频课程教案、知识点、字幕

当开发进入尾声的时候

项目组的气氛

也随着高涨起来

这个时候的主要问题

是如何把项目顺利地进行交付

对于客户委托开发的软件项目

项目的验收和交付工作

主要包括 实施

培训和验收三个部分

验收之后

系统就正式进入维护阶段

项目实施的任务

是把软件系统

部署到客户的计算机系统上

并且协助客户准备好基础数据

使软件系统能够顺利地上线运行

首先 要做好系统的测试

保证软件系统的质量

符合上线要求

在实施之前要制定工作计划

确定要发布的代码版本

数据库创建的方式

和基础数据的准备

另外

还要准备好程序代码

和相关文档

在系统部署完成之后

还要组织客户培训

使其掌握软件系统的使用

和操作

培训工作包括选择合适的人员

准备培训内容

以及制定培训的计划

最后

客户对系统进行验收测试

检查用户需求是否实现

以及软件的质量是否满足要求

在验收通过之后

客户将签署验收报告

整个项目正式完成

软件部署

是软件开发的一个重要环节

它是通过配置

安装和激活等一系列活动

来保证软件制品的投入运行

部署的技术

会影响整个软件的运行效率

和投入成本

软件配置过程也会极大地影响

软件部署结果的正确性

软件部署

需要保障软件系统的正常运行

并且使用有效手段

提高部署的效率

具体说来

就是要提高软件部署的通用性

和灵活性

使其能够适用于

更为广泛的软件类型

和应用场景

要加强软件部署的可靠性

和正确性

实现软件系统的正确配置

优化系统性能

要提高软件部署的自动化程度

尽量减少人工参与

避免人工操作带来的错误

不同的软件系统

具有不同的部署模式

对于像类似Windows

这种单机软件来说

它的署模式就是一般的

安装和更新过程

主要包括打包 安装 更新 激活

对于客户基于服务器结构的系统

一种方式

是集中式的服务器应用部署

主要适合于小规模用户群的

应用环境

一般情况下

这种系统只有一台

或几台单独的服务器

每个服务器承担独立的任务

比如说 Web服务器

邮件服务器 数据库服务器等

另一种方式

是集群式的服务器应用部署

主要适用于并发用户访问量大

而且对系统稳定性和性能

要求很高的分布式平台

在这种模式下

不同的服务器职能

是由若干服务器机群来实现

通过负载平衡

把任务分配到集群中的

每一台机器上

在互联网环境下

Web应用系统的开发

主要是采用敏捷开发方法

强调持续集成和快速交付

所谓持续集成

就是开发小组

经常集成自己的工作

通常每人每天至少集成一次

每一次集成

都通过自动化的构建来完成

持续交付

是在持续集成的基础上实现的

它是以自动化

或者半自动化的方式

把构建的版本从开发环境推送到

接近实际使用的交付准备环境中

例如像flickr系统

大概一周会平均部署几十次

几乎每一个开发人员的

每一次修改就会导致一次部署

这样做可以快速地获得用户的反馈

更好地适应需求的变化

这里显示的

是单个产品的构建流水线

从开发人员提交修改

到源代码库开始

后续的所有步骤

都是由构建流水线自动来完成

首先是package打包阶段

它把应用准备好

到能够在实际的环境中

进行部署这样的程度

打包之后

可以把产品包部署到一个staging

也就是预演环境下

准备进行功能测试

这里要求

准备一个干净的预演环境

在环境部署好之后

对环境中的产品

运行功能测试脚本

如果测试全部通过

就可以把部署脚本和产品包

发布到仓库中

然后进行E2E

也就是进行端对端的测试

这里也是要准备好

所需要的服务器等设施

然后把集成测试

所涉及的所有产品

都部署到这个环境中

再运行测试

如果集成测试也是通过的

那么就可以把产品包

部署到实际使用环境中

在传统的瀑布开发过程中

开发人员

完成整个代码编写工作之后

测试才正式开始启动

在测试阶段

开发人员和测试人员

一起进行缺陷修复和系统测试

最后通过测试之后

进行上线维护

在实际开发过程中

会有很多并行项目同时进行

为了避免相互干扰

很多项目都是从主干中

拉出分支进行开发

比如说

项目1创建一个新的分支

进行开发

在开发期间

项目2完成开发

合并到主干进行上线

项目1完成开发之后

需要先把主干上的程序

合并到自己的分支进行联调

联调完成之后进行提测

这个时候测试人员和开发人员

一起进行测试和bug的修复

测试通过之后

再把项目1的分支

合并到主干进行上线

显然 对于大型项目而言

项目的分支可能很多

这样整个合并的过程

就非常的复杂

无法做到快速发布

在敏捷开发过程中

测试和开发

从一开始就密切合作

要做到持续地集成和交付

需要对前面的过程进行改进

现在很多互联网公司

都是采用主干开发

分支提测的方式

这种方式下所有的开发

都在一个主干上进行

然后持续地提交和合并

在达到提测的时候

产生分支进行提测

测试通过之后形成上线的版本

这样改进之后

就可以做到持续快速的进行交付

软件工程课程列表:

第1章 初识软件工程

-1.1 软件无处不在

--讲课视频

-1.2 软件的本质特性

--讲授视频

-1.3 软件工程的产生与发展

--讲授视频

-1.4 软件工程的基本概念

--讲授视频

-1.5 软件质量实现

--讲授视频

-1.6 业界人士谈软件工程

--海芯科技创始人施侃乐访谈

-测验题--作业

-讨论题

--讨论题

-作业题

--第一张 作业题

第2章 编写高质量代码

-2.1 编程过程与规范

--讲课视频

-2.2 良好的编程实践

--讲课视频

-2.3 Python集成开发环境

--讲课视频

-2.4 代码静态检查

--讲课视频

-2.5 代码性能分析

--讲课视频

-2.6 结对编程实践

--讲课视频

-2.7 刘贺谈软件工程

--讲课视频

--讨论

-测验题--作业

-作业题

--第二章 作业题

第3章 单元测试

-3.1 单元测试概述

--讲课视频

-3.2 黑盒测试方法

--黑盒测试方法

-3.3 白盒测试方法

--基本概念

--代码覆盖标准

--基本路径测试

-3.4 单元测试工具

--单元测试工具

--html

-测验题--作业

-作业题

--第三章 作业题

--作业题附件

第4章 软件开发过程

-4.1 软件过程

--讲课视频

-4.2 软件过程模型

--讲课视频

-4.3 敏捷开发过程

--讲课视频

-4.4 微软公司开发过程

--邹欣经理自我介绍

--微软开发过程之一

--微软开发过程之二

-测验题--作业

第5章 团队开发管理

-5.1 团队组织与管理

--讲课视频

-5.2 项目沟通管理

--讲课视频

-5.3 软件项目计划

--讲课视频

-5.4 软件项目估算

--讲课视频

-测验题--作业

-讨论题

--讨论

第6章 敏捷开发与配置管理

-6.1 敏捷开发之Scrum

-- 敏捷开发之Scrum

--html

-6.2 用户故事与估算

--讲课视频

-6.3 团队协作工具Tower

--Tower工具介绍(1)

--Tower工具介绍(2)

-6.4 配置管理

--讲课视频

-6.5 配置管理工具Git

--讲课视频

-测验题--作业

-作业题--作业

第7章 需求获取

-7.1 需求工程师

--讲课视频

-7.2 需求定义

--讲课视频

-7.3 需求的类型

--讲课视频

--讲课视频(2)

-7.4 需求工程过程

--讲课视频

-7.5 需求的主要来源

--讲课视频

-7.6 需求获取技术

--讲课视频

--讲课视频二

--讲课视频三

-7.7 撰写需求文档

--讲课视频

-测验题--作业

-讨论题

--讨论

第8章 用例建模

-8.1 用例建模概念

--讲课视频

-8.2 用例建模过程

--讲课视频

-8.3 用例建模精讲

--讲课视频

-8.4 建模工具介绍

--讲课视频

-8.5 微信抢票应用案例

--讲课视频

-测验题--作业

-讨论题

--讨论

第9章 面向对象分析与设计

-9.1 面向对象分析

--讲课视频

-9.2 CRC卡片分拣法

--讲课视频-1

--讲课视频-2

-9.3 面向对象设计

--讲课视频-1

--讲课视频-2

-9.4 类图建模

--讲课视频-1

--讲课视频-2

-第9章 面向对象分析与设计--测验题

-讨论题

--讨论

第10章 行为建模

-10.1 顺序图概念

--讲课视频

-10.2 顺序图建模

--讲课视频

-10.3 顺序图风格

--讲义视频

-10.4 状态建模

--讲课视频

-10.5 状态图

--讲课视频

-10.6 状态图精讲

--讲义视频

-测验题--作业

-讨论题

--讨论

第11章 软件系统设计

-11.1 软件体系结构概念

--讲授视频

-11.2 软件设计原则

--讲授视频

-11.3 软件体系结构风格(一)

--讲授视频

-11.4 软件体系结构风格(二)

--讲授视频

-11.5 软件体系结构风格(三)

--讲授视频

-11.6 软件设计过程

--讲授视频

-11.7 Web系统架构设计

--讲授视频

-11.8 数据库选择策略

--讲授视频

-测验题--作业

-作业题

--html

--html

--html

-作业题--作业

第12章 软件交互设计

-12.1 交互设计概述

--讲授视频

-12.2 交互设计目标

--讲授视频

-12.3 GUI设计原则

--讲课视频

-12.4 KLM效率模型

--Video

-12.5 Fitts定律

--讲授视频

-12.6 交互设计过程

--讲授视频

-测验题--作业

第13章 软件系统测试

-13.1 软件测试概念

--讲课视频

-13.2 软件测试类型

--讲课视频

-13.3 软件功能测试

--讲课视频

-13.4 软件性能测试

--讲课视频

-测验题--作业

第14章 软件交付与维护

-14.1 软件部署与交付

--讲课视频

-14.2 软件演化与维护

--讲课视频

-测验题--作业

第15章 期末考试与总结

-第一部分:基础知识

-第二部分:编程与测试(选做)

--编程与测试(选做)

讲课视频笔记与讨论

也许你还感兴趣的课程:

© 柠檬大学-慕课导航 课程版权归原始院校所有,
本网站仅通过互联网进行慕课课程索引,不提供在线课程学习和视频,请同学们点击报名到课程提供网站进行学习。