当前课程知识点:软件工程 >  第4章 软件开发过程 >  4.1 软件过程 >  讲课视频

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

讲课视频在线视频

下一节:讲课视频

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

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

我们在前面讲过

过程是软件工程的一个基本要素

在这一讲中

我们将讲解什么是过程

过程在软件开发管理中

起到什么作用

软件过程又包括哪些基本活动

我们先看一下过程的含义

过程是一个广义的概念

它是通过一系列相互关联的活动

将输入转化为输出

对于软件开发来说

用户需求是软件开发的基础

也是整个开发过程的一个输入

开发人员

通过一系列软件开发活动

最终交付出用户需要的产品

现在考虑一个问题

如何才能保证最终交付的

是用户满意的产品

也许有的同学会说

我们可以对最终产品

进行质量检验

这个工作肯定是必要的

但是事后的检验

只能验证输出产品的质量

而无法保证

产品一定就是符合用户要求的

这一点需要在软件的构建过程中

加以控制和管理

显然 产品质量保证的关键

在于对软件开发过程

进行有效控制

要实现

对软件开发过程的有效控制

首先要规定过程实现的方法

和步骤

也就是说

要把整个过程进行细分

详细地定义出

过程里面的每一个环节

以及各个环节之间的执行顺序

其次

还要对过程进行监控

但是这个监控

并不只是对最终产品

进行质量检验

而是要对过程的开始

每一个活动的执行

一直到结束

进行全方位地监测

从而保证每一个活动能够

达到应有的质量

过程管理对产品质量的控制

起到至关重要的作用

我们用麦当劳食品这个例子

来说明一下过程管理的重要性

我们发现

无论在世界的什么地方

进入麦当劳餐厅

除了少量本地特色食品之外

几乎所有餐品的质量

都没有太大的差别

这是如何做到的呢

麦当劳对汉堡包的原材料

和制作过程

都做了非常细致的要求

诸如面包的大小

牛肉的品质

肉饼的组成

以及汉堡的烘烤时间等

同时 对制作后的售卖过程

也做了严格的时间限定

甚至规定了

与汉堡包一起卖的

可口可乐的温度

和柜台高度等

正是由于

在过程细节上的精益求精

从而保证了世界各地

售卖的麦当劳产品

在品质上没有太大的差异

也就是

无论何人 无论何时

无论何地无品质差异

这就是运用过程方法

来有效保证最终的产品质量

所谓过程方法

是系统地识别和管理

组织内所使用的过程

保证更有效地获得期望的结果

从刚才麦当劳的例子可以看出

过程方法是一个组织和管理

工作活动的有效手段

其目的是更好地为用户创造价值

通常过程包括实现过程

管理过程和支持过程

三种类型

其中实现过程

是提供有价值产品

或服务的关键性活动

这些活动负责把输入

转化为输出

支持活动负责提供所需要的资源

和能力

从而使关键性的实现活动

能够顺利进行

管理活动

则是衡量和评价实现过程

和支持过程的效能

建立起组织的质量管理体系

软件过程

是为了获得高质量软件

而实施的一系列活动

它包括问题定义

需求开发 软件设计

软件构造 软件测试

等一系列软件开发的实现活动

而每一项活动

都会产生相应的中间制品

为了保证软件开发过程

能够按照预定的成本 进度

质量顺利完成

还需要诸如项目管理

配置管理 质量保证

等一系列开发管理活动

通过建立

整个组织的质量管理体系

实现对软件开发

实现活动的有效控制和质量保证

下面我们来介绍一下

软件开发过程的一些基本活动

任何一个软件产品

都起源于一个实际问题

或者一个创意

当问题或创意提出之后

我们通过开展技术探索

和市场调查等活动

来研究系统的可行性

和可能的解决方案

从而确定待开发系统的总体目标和范围

下面我们用前面提到过的一个

微信抢票应用的例子

来说明问题定义这个活动

过去学生参加学校举办的活动

或演出

总是需要排队买票或领票

这个过程是非常烦人的一个过程

解决这个问题

有不同的解决方案

可以开发一个Web应用

也可以开发一个独立的手机APP

还可以做一个微信应用

通过比较

这不同方案

我们可以看出微信应用

是一个成本最低

开发最快的一个解决方案

而且学生几乎每个人都使用微信

那么微信应用

可以更容易地被学生接受

和认可

因此我们最终确定

系统的目标是

开发一个微信抢票应用

有了微信抢票应用

再参加学校的活动和演出

就是一个非常愉悦的过程

在可行性研究之后

我们还需要进行需求的开发

和定义

首先要收集用户的需求

对所收集的需求进行分析

整理和提炼

来理解和建模系统的行为

那么在这个过程

可能还要返回去

继续收集更多的需求

在对系统的行为

进行明确之后

我们还要用文档的形式

把待开发系统的行为定义出来

并且来检查和确认这个文档

是不是满足用户的要求

那么在确认的过程里

还要反复去收集 分析

再补充这样的一个过程

确认通过之后

我们形成一个

正式的软件需求规格说明书

这个需求规格说明

就是作为后续开发的一个基础

有了需求规格说明之后

我们需要对软件进行设计

然后形成软件设计说明书

那么这个设计的活动

包括以下几个方面

首先是要对软件的整体结构

进行设计

然后定义出每个模块的接口

并且进一步地设计

每一个组建的实现算法

和数据结构

同时呢

还要对整个系统的数据库

进行设计

在设计完成之后

我们还需要通过构造活动

把设计转化成程序代码

首先我们要理解系统的模型

编写代码

进行代码的审查和单元的测试

还要进行代码优化

最终要构建系统

并且集成联调

这一个过程

是一个复杂而迭代的过程

在软件构造完成之后

我们还要软件产品进行测试

测试是有不同层次的

包括单元测试 子系统测试

系统的集成测试和验收测试

在不同的层次上

来保证每一个模块

整个系统和最终产品的质量

测试通过以后

产品就可以发布了

但是系统投入使用

还会进行不断地修改

来适应不断变化的需求

应该说完全从头开发的系统

是很少的

整个开发和维护

是一个连续交叉的过程

首先呢

当新的需求出现之后

我们要定义这个需求

然后看现有的系统

是不是能够满足

当前这个新的需求

如果现有的系统

不能满足需求

我们就要进行进一步地开发

提出系统的变更

针对这个系统的变更

我们要修改现有的系统

然后形成一个新的系统

整个的这个过程

是一个循环往复的一个过程

除了基本的实现活动以外

软件项目管理

和软件配置管理

是两个很重要的开发管理活动

软件项目管理

是为了软件项目

能够按照预定的成本 进度

和质量顺利地完成

对人员 进度

质量 成本 风险

进行控制和管理的活动

应该说项目管理

主要体现在四个方面

首先要明确项目的目标

制定项目的计划

明确项目需要的资源

其次呢 要组建开发团队

要明确每一个成员的分工

和责任

然后在项目这个实施过程中

我们还要检查和评价

项目的总体进展情况

来控制整个项目范围的变更

监控项目进展过程中

出现的问题

并及时地纠正这些问题

软件配置管理

是通过版本的控制 变更的控制

并且使用合适的配置管理软件

来保证整个开发里面的

所有产品配置项

例如代码 文档等的完整性

和可跟踪性

它主要包括四个基本活动

版本管理是跟踪系统中

每一个组件的多个版本

来保证开发者

对组件的修改不会产生混乱

系统的构建

则是把不同的组件

进行编译 链接

组成了一个可执行的系统

变更管理是对开发过程中

来自用户和开发者的开发请求

进行分析和评估

做出适当的这个决策

来决定是否变更

和何时变更

当整个开发完成之后

发布版本管理

需要准备发布的软件

并对用户使用的软件

进行持续地跟踪

软件工程课程列表:

第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章 期末考试与总结

-第一部分:基础知识

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

--编程与测试(选做)

讲课视频笔记与讨论

也许你还感兴趣的课程:

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