当前课程知识点:软件工程与软件自动化 >  第一章 软件工程基础 >  1.3 唯一不变的是变化 >  授课视频1/3

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

授课视频1/3在线视频

下一节:授课视频2/3

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

授课视频1/3课程教案、知识点、字幕

嗨,大家好

下面我们继续讨论需求的捕获与分析

首先我们来看一个幽默

这个幽默来自于国外的一个网站

非常具有代表性

首先呢,what the user asked for

用户告诉你

我们需要一个这样的东西

他口头做了这样一个描述

这是他描述的样子

分析师拿到这个需求一看

什么东西啊

用户也不懂

于是呢,他就分析出来了这样一个东西

我们前面提到过

我们的技术人员都是具有高度创造性的人员

他很灵活

那么分析师分析的结果交给设计师

设计师一看

分析师怎么分析的啊

这不合逻辑啊,对不对,于是呢

设计师就按照自己的理解

设计成这个样子

Programmer,程序员也是具有高度创造性的

他觉得这个设计不合理不科学

那么自己在编码过程当中

于是编成了这样一套软件

那么大家忙忙碌碌忙了这么长的时间

what the user really wanted

最后客户在一次偶然的交谈当中

可能蹲厕所的时候一拍脑袋

然后给我们打电话说

我就是想要一个秋千给孩子用

这个时候我们就傻眼了

因为我们做的东西

分析设计和我们最后做

包括测试

用户的原始的需求和现在实际的需求

不是一回事

这时候怎么办?

how it really works

最后我们没办法了

基于这个钱也花了

时间也到了,对不对,必须得用了

质量呢?怎么办呀

于是我们勉强的修修补补

附带一个说明书

告诉你,我们这个秋千呢

承重不能超过30公斤

摆动幅度不能超过正负15度

旁边必须有监护人监护,等等等等

各种各样的限制

然后我们的系统勉强交付

这只是一个幽默

我们很多软件开发它实际上就是这样的

很少一部分的客户对我花的这个钱

这个软件产品是非常满意的

也就是说大部分是不满意的

但是没办法,钱也花光了

进度也到了

质量勉强可接受

需求分析真的这么难吗?

我们这里有三种原因让需求分析变得困难

第一个,客户说不清

你说不清,你的想法在你的脑子当中

你说不清楚,我也没法做啊

第二,需求自身经常改变

需求变了

客户也没办法,我不想变,但市场变了

是不是,没办法

第三种,分析双方理解有误

我说的和你理解的不是一回事

这是交流的问题

在需求分析这一块

经常会出现这样的一些原因

造成需求分析变得非常困难

这个小幽默呢,是几乎所有的软件工程的书上

都会提到的一个小幽默

意思是说所有的需求没有低于三次的变更

第一个部分我们要讨论的是需求捕获

这个捕获是需求分析的基础

没有捕获到,你怎么分析啊

巧妇难为无米之炊么

这里面有句名言

艾森豪威尔将军的一句名言

plans are nothing, planning is verything

他强调说,计划什么都不是

做计划的过程

制定计划是一切

他强调做好的计划随时根据客观条件来变

如果大家看过一部电影D Day

诺曼底登陆

诺曼底登陆就是艾森豪威将军作为总指挥指挥

的一次大规模登陆作战

那里面天气的变化

随时都可以导致登陆计划流产

从这个名言当中,我们可以进一步推广到

我们的软件工程开发

开发是什么?

开发是把人们的期望转变成

一种能够满足期望的产品的过程

也就是说,开发是什么?是一个过程

我们开发的产品什么都不是

开发的过程就是一切

强调过程的重要性

过程做好了,结果自然是好的

如果过程很混乱

那么结果就没有好结果

进一步来说,发现什么都不是

而发现的过程就是一切

也就是说探索的重要性

特别强调你要拿到用户或客户

心目当中对这个软件的期望

这个期望在他的头脑当中

你看不见的,怎么才能把它拿出来

这是一个关键,需求捕获

需求捕获它是一个过程,一个什么过程

发现的过程

一个试图发现的过程

你不一定能发现的了

你只是try your best

发现什么啊?发现期望

发现谁的期望

发现客户的

什么样的期望啊

新产品的期望

我们强调说,发现客户对新产品的期望

这是我们探索过程的一个递进的说明

具体来讲,我们如何来捕获这个需求呢

我们来看一看

第一,用户主诉

就像看病一样

先听听你说

你想干什么

有的时候呢

他只是说我有一笔钱

我想干这件事,其他的我没有想,没有idea了

第二个,问卷调查

有时候客户可能不是一个人,而是一个公司

我们对他们呢

要制定一个详细的问卷调查

对不同的人员发放不同的问卷调查

调查回来之后进行分析

你们工作当中哪些可能会需要

我们这个软件来帮你解决什么问题

然后呢,第三就是头脑风暴

到客户那边,或者我们自己开发团队当中

我们坐在一起头脑风暴

进行一个快速的讨论

在讨论过程当中

或者在整个需求捕获和分析过程当中

有一点是我们需要注意的

就是要超越用户

用户不是专业人员

他就是有个想法

我们能不能超越他

替他来想

你或你们公司业务发展的目标是什么

意图是什么?

三年五年的计划是什么?

我作为一个开发人员

我能不能考虑到你现在的这个软件的开发需求

能不能符合你的业务发展

能不能为你的业务发展提供支撑

产品数据,就是说你的公司之前有没有一些产品

我从你现有的产品当中

能不能收集一些数据作为一个客观分析的依据

对吧,也不能拍脑袋么

就是说我们获得一些数据支撑

竞品分析

我看看你这个客户想开发这个产品

你的目的是要跟竞争对手做一些竞争

那么我能不能对你的竞争对手

他们的产品做一个分析

然后对我们的产品提出一些意见和建议

他们有的,我们要做的比他们更好

他们没有的,我们要有

通过这样的分析

能极大地提高我们用户的竞争力

这种捕获是应该从头到尾,反复的,迭代的

去完成

因为什么呀

因为我们用户在这方面他是反复无常的

并不是说他这个人有问题

他这个人是容易反复的人

而是说他的需求他不确定

随着理解的深入

他会发现更多的

更具体的这种需求的变更和修正

我们具体如何来做这些事情呢

我们这里面有一些工具

当然有很多工具都可以帮助我们做这些工作

这里的工具我们用的是个脑图软件

脑图软件特别适合你做头脑风暴

聚在一起然后讨论

讨论完之后呢我们把所有的信息都进行组织

这个是与我们内容没关系的

只是让大家看到这个脑图

virtual your mind

你的脑袋里面的idea很难获取

我们现在通过这种方式

通过这种工具来帮助你来进行

一个个的大脑的地图

一个个的大脑的地图

我们叫map,mindmap

类似这样的软件

这部分呢,我们可以看一个产品广告

软件工程与软件自动化课程列表:

第一章 软件工程基础

-1.1 软件工程的前生今世

--开篇阅读

--授课视频

-第一章 软件工程基础--1.1 软件工程的前生今世

-1.2 万变不离其宗

--授课视频1/3

--授课视频2/3

--授课视频3/3

-第一章 软件工程基础--1.2 万变不离其宗

-1.3 唯一不变的是变化

--授课视频1/3

--授课视频2/3

--授课视频3/3

--外部链接

-第一章 软件工程基础--1.3 唯一不变的是变化

-1.4 亡羊补牢为时不晚

--授课视频1/2

--授课视频2/2

-第一章 软件工程基础--1.4 亡羊补牢为时不晚

-扩展阅读与话题讨论

--扩展阅读

--话题讨论

第二章 敏捷开发

-2.1 方法论来源于恐惧

--授课视频

-第二章 敏捷开发--2.1 方法论来源于恐惧

-2.2 敏捷是什么

--授课视频

-第二章 敏捷开发--2.2 敏捷是什么

-2.3 典型敏捷开发方法

--SCRUM敏捷开发方法

--XP敏捷开发方法

-第二章 敏捷开发--2.3 典型敏捷开发方法

-2.4 敏捷不是万能药

--授课视频

-第二章 敏捷开发--2.4 敏捷不是万能药

-专家谈敏捷

--专家谈敏捷开发方法

-扩展阅读与话题讨论

--外部链接

--话题讨论

第三章 OO与UML

-3.1 面向对象核心概念和基本特性

--核心概念与基本特性

-第三章 OO与UML--3.1 面向对象核心概念和基本特性

-3.2 面向对象设计基本原则

--面向对象设计基本原则

-第三章 OO与UML--3.2 面向对象设计基本原则

-3.3 通用职责分配模式(GRASP)

--通用职责分配模式

-3.3 通用职责分配模式(GRASP)--作业

-3.4 从重构到模式

--模式和设计模式

-第三章 OO与UML--3.4 从重构到模式

-3.5 使用UML设计面向对象系统

--UML综述

-第三章 OO与UML--3.5 使用UML设计面向对象系统

-3.6 主要UML模型图绘制技巧

--UML用例图

--UML类图

--UML序列图绘制技巧

-第三章 OO与UML--3.6 主要UML模型图绘制技巧

-扩展阅读与话题讨论

--设计模式有毒么?

--话题讨论

第四章 对象模型分析

-4.1 案例简介

--书籍参考

--案例说明

-4.2 对象模型之一

--授课视频1/2

--授课视频2/2

-第四章 对象模型分析--4.2 对象模型之一

-4.3 对象模型之二

--授课视频1/2

--授课视频2/2

-第四章 对象模型分析--4.3 对象模型之二

-4.4 对象模型之交互

--授课视频

-第四章 对象模型分析--4.4 对象模型之交互

-扩展阅读与话题讨论

--图书推荐

--话题讨论

第五章 软件自动化技术

-5.1 软件自动化概述

--软件自动化概述

-第五章 软件自动化技术--5.1 软件自动化概述

-5.2 典型自动化方法和工具

--典型自动化工具视频

-第五章 软件自动化技术--5.2 典型自动化方法和工具

-5.3 文档自动化

--文档自动化视频

-第五章 软件自动化技术--5.3 文档自动化

-5.4 测试自动化

--测试自动化视频

--白盒测试工具VU的示例演示片段(版权属原作者)

--功能和性能自动化测试工具及简单应用演示

-第五章 软件自动化技术--5.4 测试自动化

-专家访谈

--北京理工大学刘辉教授谈软件自动化新进展

-扩展阅读与话题讨论

--各个开发阶段最流行的Java工具汇总

--话题讨论

第六章 CI/CD与DevOps

-6.1 持续集成

--持续集成视频1/2

--持续集成视频2/2

-第六章 CI/CD与DevOps--6.1 持续集成

-6.2 持续交付和部署

--持续交付和持续部署

-第六章 CI/CD与DevOps--6.2 持续交付和部署

-6.3 DevOps

--DevOps授课视频

-第六章 CI/CD与DevOps--6.3 DevOps

-专家访谈

--卓睿科技总架构师带来的精彩访谈

-扩展阅读与话题讨论

--DevOps专题

--话题讨论

第七章 软件质量保证

-7.1 质量和质量保证

--授课视频

-第七章 软件质量保证--7.1 质量和质量保证

-7.2 软件质量模型

--授课视频

-第七章 软件质量保证--7.2 软件质量模型

-7.3 SQA组织与职责

--授课视频

-第七章 软件质量保证--7.3 SQA组织与职责

-7.4 全面软件质量管理

--授课视频

-第七章 软件质量保证--7.4 全面软件质量管理

-专家访谈

--专家访谈

-扩展阅读与话题讨论

--外部链接

--话题讨论

第八章 软件过程改进

-8.1 软件过程综述

--授课视频

-第八章 软件过程改进--8.1 软件过程综述

-8.2 软件过程改进

--授课视频

-第八章 软件过程改进--8.2 软件过程改进

-8.3 能力成熟度模型

--授课视频

-第八章 软件过程改进--8.3 能力成熟度模型

-8.4 过程改进标准框架

--授课视频

-第八章 软件过程改进--8.4 过程改进标准框架

-扩展阅读与话题讨论

--敏捷和CMM矛盾么?

--话题讨论

第九章 软件复用

-9.1软件复用综述

--授课视频

-第九章 软件复用--9.1软件复用综述

-9.2 软件构件技术

--授课视频

-第九章 软件复用--9.2 软件构件技术

-9.3 软件复用实施

--授课视频

-第九章 软件复用--9.3 软件复用实施

-9.4 微服务架构

--授课视频

-第九章 软件复用--9.4 微服务架构

-扩展阅读与话题讨论

--微服务扩展

--话题讨论

文档提交处

-文档提交处--文档提交

授课视频1/3笔记与讨论

也许你还感兴趣的课程:

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