当前课程知识点:软件理论与工程 >  第2章 需求分析 >  2.3 需求分析 >  2.3 需求分析

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

2.3 需求分析在线视频

下一节:2.4 过程建模

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

2.3 需求分析课程教案、知识点、字幕

大家好

那我们今天开始软件理论与工程 第二章

第三节需求分析

我是主讲老师高广宇

我们在前面我们讲到整个需求工程

包括需求获取 需求分析

规格说明 需求验证

以及我们看到的这个最上面外围的

需求管理 五个环节

我们上一节课的时候呢

我们讲的需求获取

那我们今天呢

接着讲我们的下一个环节

需求分析

那首先呢

我们理解一下什么是需求分析

其实在上一节的时候呢

我们适当的讲了一下

我们在讲说需求获取

有的时候跟需求分析呢

它是融为一体的

我们在获取了之后会进行一些适当分析

我们再回顾一下我们分析的时候

我们通常是针对用户需求或者系统需求

我们通过一些建模

或者说一些规格化 形式化的文档

再进行需求获取

所以呢

从这个层面上我们能够理解出

整个需求分析

简单来说

就是针对我们前期获取的需求

当然这些需求可能是通过一些

比较粗糙的一些文档 一些简单的

一些这个图表的方式来展现的

需求分析的过程就是要

通过我们特定的一些需求分析的

模型

通过需求建模

需求细化等等一些方式呢

来更好的梳理和

抽象我们的一些需求内容

使得它呢更加的靠近

我们整个系统工程师所能够

理解的一些这个描述方式

所以呢

需求分析第一个呢

它是通过建模来整合各种信息

以使得人们更好的理解问题

第二个呢

具体和形式化的描述呢

它是为一个问题去定义出一个需求的集合

这个集合

能够为问题界定一个有效的解决方案

第三个呢

我们还需要在这个过程中去

检查需求当中

存在的错误或者遗漏

不一致等各种缺陷

并加以修正

这样的话

能够确保我们最后所形成的一些需求工程

的一些这个文档

一些结果 一些成果呢

它的一些有效性和正确性

这是关于这个

那我们整个需求分析呢

跟需求获取一样

它也会包含

若干的一些这个子活动

包括背景分析 确定系统边界

需求建模 需求细化 确定优先级

需求协商等等 对吧

这是他的一些这个子活动

这个大家稍微理解一下

我们后面在会在具体去讲

我们下面呢

从四个方面再对整个需求分析呢

进行一些这个深入的讲解

第一个就是说呢

需求分析的根本任务是什么

接下来 我们就从

它的技术 方法和活动

几个层面分别进行介绍

首先是需求分析的根本这个任务

那我们知道整个需求分析是处在说

需求获取

和后期的这个规格说明

甚至是跟这个需求管理去打交道的一个环节

它的一个任务是要干嘛呢

是要在已经获取的这一些需求

我想用户的理解问题的描述这么一些

这个基础上去进行一些分析梳理

也就是我们要去建立分析的模型

我们要去

针对这个分析的一些模型

去创建一些解决方案

所以呢 需求分析的

根本任务主要包括两个方面

第一建立分析模型

第二创建解决方案

重点是后面的创建解决方案

那它到底是什么样一个环节呢

我们可以看一下这些PPT理解一下

要创建解决方案呢

我们是要将一个问题分解成独立的

更简单的或易于管理的子问题

来帮助我们寻找一个解决方案

所以呢

创建解决方案的过程是创造性的

当然它也能够帮助

开发者建立问题的一个定义

并确定了被定义的事物之间的一个逻辑关系

也就是说呢

通过这个方式

我们能够对前面所获得的一些需求进行更好的

体现逻辑关系的一些

这种描述或者阐述 对吧

是他的一个根本任务

那需求分析他的一些技术

包括什么样的一些这个技术呢

那我们看一下 通常来说呢

需求分析的技术包括两大类

一类是结构化的一些技术

一类是面向对象的一些技术

结构化的技术呢

这些ppt的我们列的非常的详细

大家看一下这个二级子标题

结构化的技术包括呢 我们要对数据去建模

对过程建模

对行为建模

还有呢 包括这个传统的一些信息工程的

一些方式

前面的这几个都是从我们不同的这个关注

或者说视角来看

从数据过程和行为的角度来看

怎么去做建模

那还有一大类就是面向对象的技术

在这一类技术里面呢

比较主要的就是依赖于

所谓的这个统一模型语言UML技术

因为在UML技术里面其实有

大量的这个模型化

规范化的一些图表来表示

包括用例图

类图等等活动图

这个的话因为我们整个这个课程

这个不是专门去讲UML

所以呢 不做特别深入的理解

大家可以自己去看一下

也能找到大量关于UML的技术

至少大家要知道呢

UML技术

可以被有效的用于软件工程还有需求工程

尤其是向需求分析的一个过程中来

那我们再讲一下 就是说有了这么一些技术

那他需求分析

具体这些方法包括哪些呢

通常来说呢

我们将需求分析的方法分为三大类

第一类呢 是传统的一些方法

包括向前面提到的在上个世纪的50年代

就完全是依赖个体

那也就是依赖自己的一些这个习惯去描述

所以这个时候是非常的混乱无章的

当然 也导致他最后形成的一些需求描述

以及他背后的这个软件开发过程

非常的混乱

效率非常的低

所以呢

到后期到上个世纪60年代开始

就出现了所谓的结构化的分析方法

对吧

然后呢 还有包括呢以数据结构为基础的

以过程结构为基础的

等等一些通过结构化的一些描述

然后再到后来到上个世纪90年代末期开始

依赖于面向对象的一个方法的一个发展

因为我们知道面向对象

是一大类方法

在程序设计语言里面

大概也知道有面向对象的

这个程序设计语言c++

java等之类的对吧

但面向对象 它是一个方法论的一个统称

所以在人的需求分析方法里面

他同样有面向对象分析的一类方法

它呢是以对象为中心

以一些图等模型为核心技术

来描述我们的一个需求分析的一个过程

它呢

能够更加的全面

更加的清晰去描述我们的一个需求

分析的一个过程

所以呢

这个也是被用的比较多的

当然 在这里面提到的这三类方法里

尤其是结构化分析方法和面向对象分析方法

其实并没有一个严格的说谁好谁坏的

这个过程主要是看谁适用

对于一些中小的一些软件来说

有的是我们通过一些结构化分析方法

就能够很有效的去

对我们那些需求分析过程进行一些建模

当然 有时候对于一些大型的复杂的

一些软件设计

一些工程开发来说

我们需要使用到面向对象分析的一些方法

这是关于这个需求分析的一个方法

当然这个里面这些ppt针对前面提到的

比如说结构分析方法

它具体涉及到的一些

这个模型做了一些介绍

比如第一个我们发现 业务事件

我们通常可以利用 上下文图

这是结构化分析方法里面的一类

这个叫什么 模型

不同的图和表都是可以统称为这个模型的

这也是我们整个需求工程过程中

建模这个模型所代表的一些这个内容

就是各种不同的一些图和表

包括到后面的一些数据字典

实体关系图 数据流图等等

这些都可以理解成是结构化分析方法

它的一些这个模型

另外一大类就是面向对象分析方法

前面我们讲的在这一类里面呢

比较经典的

用的比较多的就是前面提到的这个UML语言

他定义了

大概13类和16类各种不同的一些图表

从各个不同的层面

包括这里面提到的

像这个用例图啊

这个交互图 状态图 类图等等

各种各样一些这个图表

都是 一些所谓的这个面向对象的一些模型

来通过面向对象分析的方法进行需求分析

建模的一个过程

这是我们这个需求分析这些方式

那有了这么一些

这个技术和方法面向这么一个根本任务

那需求分析到底包括什么样的一些活动呢

所以在最开始那些ppt里我们适当的

说了一下

那我们现在呢

在结合前面三部分内容

我们再精确讲解一下

通常来说呢

我们在前期呢

在通过需求获取获取到大量的需求

比如这里面提到的这个需求笔录

形成一些文字记要的一些东西之后

我们要进行这个需求建模

这个需求建模就是利用前面提到的方法和技术

通过结构化方法 结构化技术

或者说是

面向对象的UML的一些这个图表的方式

来进行建模

进行一些这个模型化的阐述

文档化的描述

形成一些所谓的一个解决方案

这个时候呢

我们在结合前期我们的业务需求

和用户需求这两个

我们前面提到在需求获取阶段

有的时候就已经比较明确了

我们在对我们刚才形成的这么一些

这个需求建模之后形成的一些模型文档

进行所谓的什么需求细化

得到呢

下面的这个什么系统需求

因为最后我们是希望有非常清晰的

通过需求规格说明去描述的一些系统需求

从而呢

交给系统设计和开发人员去

进行软件工程的下一个阶段

但这里面的话呢

前面有提到

我们得到了系统需求 我们要去

去确定它的一些优先级

同时呢 我们要去做一些验证

然后去排除一些不合理的一些这个需求

当然 还要做一些这个需求的一些协商

这是关于谈论需求分析这个活动

那需求分析活动里面呢

比较重要的一个环节是需求细化

这里面也提到了需求细化 我们要去明确

比如用户需求的一些隐含因素

我们要将问题域和业务的角度表达的用户需求

进行等效的转换

等等

而且呢 最后细化后的需求应该被

一一的标识和记录下来

大家留意一下

在整个需求工程过程中啊

所有的这些文档模型都是需要去

被标识和记录下来

这个最后要作为这个成果来输出的

这是需求分析的一个活动

那我们今天的这一节就讲到这里

我们下一节继续讲

需求分析的剩下的一些内容

谢谢大家

软件理论与工程课程列表:

课程概述

-课程概述

第1章 软件与软件工程

-1.1 软件的本质

--1.1 软件的本质

-1.2 软件工程

--1.2 软件工程

-1.3 软件过程结构

--1.3 软件过程结构

-1.4 过程模型

--1.4 过程模型

-1.5 敏捷开发方法

--1.5 敏捷开发方法

-第1章 习题

--第1章 习题

第2章 需求分析

-2.1 需求工程过程

--2.1 需求工程过程

-2.2 需求获取

--2.2 需求获取

-2.3 需求分析

--2.3 需求分析

-2.4 过程建模

--2.4 过程建模

-2.5 面向对象建模

--2.5 面向对象建模

-第2章 习题

--第2章 习题

第3章 软件设计

-3.1 设计概述

--3.1 设计概述

-3.2 设计的概念

--3.2 设计的概念

-3.3 设计模型元素

--3.3 设计模型元素

-3.4 体系结构概述

--3.4 体系结构概述

-3.5 体系结构风格

--3.5 体系结构风格

-3.6 构件级设计

--3.6 构件级设计

-3.7 UI设计

--3.7 UI设计

-3.8 基于模式的设计

--3.8 基于模式的设计

-第3章 习题

--第3章 习题

第4章 UML方法

-4.1 UML概述

--4.1 UML概述

-4.2 UML 及UML中的事物

--4.2 UML 及UML中的事物

-4.3 UML关系和图

--4.3 UML关系和图

-4.4 UML 图细节(上)

--4.4 UML 图细节(上)

-4.4 UML 图细节(下)

--4.4 UML 图细节(下)

-第4章 习题

--第4章 习题

第5章 软件测试

-5.1 软件测试策略

--5.1 软件测试策略(上)

--5.1 软件测试策略(下)

-5.2 测试传统的应用系统

--5.2 测试传统的应用系统

-5.3 测试面向对象的应用系统

--5.3 测试面向对象的应用系统

-5.4 测试web应用系统

--5.4 测试web应用系统

-5.5 测试移动应用系统

--5.5 测试移动应用系统

-第5章 习题

--第5章 习题

第6章 项目管理

-6.1 软件项目估算

--6.1 软件项目估算

-6.2 软件过程管理

--6.2 软件过程管理

-6.3 软件配置管理

--6.3 软件配置管理

-6.4 项目版本控制及调试

--6.4 项目版本控制及调试

-第6章 习题

--第6章 习题

2.3 需求分析笔记与讨论

也许你还感兴趣的课程:

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