产品经理——需求模型的分类

 在开发系统时要用到许多类型的模型,分别从功能需求、业务流程、数据需求等方面进行描述,所要描述的信息特性决定了使用的模型类型。模型的类型包括数学模型、描述模型和图形模型。

 

产品经理——需求模型的分类

 

模型的分类

几天后,大牛和小白又开始了第二课。在讲课之前,大牛首先回顾了上一课的内容:“前面一节课,了解了什么是需求建模以及建模的重要性。需求建模就是用文字、图形、表格等形式来描述将要开发的系统,设计人员可以根据需求模型设计系统,其他相关人员可以通过这些模型了解系统的组成和结构。”

大牛问小白:“对上一节课的内容,还有什么疑问吗?”

小白回答道:“确实有一个疑惑,在上节课建立的案例模型,只是简单用文字对功能进行了描述,我以前也阅读过一些需求规格说明书,里面大量的内容都是文字、图形和表格,这些也都属于模型吧?”

大牛回答道:“没错,需求规格说明书是对系统需求整体进行描述的文档资料,文档资料里面有功能、业务流程、数据流、数据字典等模型,不同模型的信息特性决定了使用什么类型的模型,这节课我们就重点讲述模型的类型”。

大牛在黑板上写下了本节课的学习内容:

  • 数学模型

  • 描述模型

  • 图形模型

 

数学模型

大牛对小白说:“在开发系统时要用到许多类型的模型,分别从功能需求、业务流程、数据需求等方面进行描述,所要描述的信息特性决定了使用的模型类型。模型的类型包括数学模型、描述模型和图形模型”。

“在讲述模型类型之前呢,我们先看一个案例,案例还是第一课的案例,但需求有所改动”,大牛边说边把上节课补充的案例内容写在黑板上。

快餐店的老板对电话在线订餐系统又提出了新的要求,要求能够对打入电话订餐的人按照订餐内容自动分类,例如:订汉堡包的归一类,订三明治的归一类等。

你能否帮他建立一个自动分类模型呢?

小白看到黑板上的内容,对大牛说道:“自动分类要用到数学算法吧,看来需要建立一个数学模型,对打进电话的人,依据订餐内容自动归并到一个类别”。

大牛说:“说的很对,其实这个模型很容易建立,应用非常广泛的贝叶斯分类算法就是很成熟的自动分类数学模型,贝叶斯分类算法通过计算订餐内容属于每个类别的概率,并选取最大的概率为这个订餐内容的类别”。

大牛边说边把贝叶斯分类算法公式写在黑板上。

产品经理——需求模型的分类

大牛指着黑板上的公式说:“这就是贝叶斯分类算法的概率判定公式,也是贝叶斯分类算法的数学模型”。

小白说:“哦,数学模型其实就是数学公式啊”。

大牛走到黑板前,把数学模型的相关定义及内容写到了黑板上。

数学模型—

描述系统技术方面的一系列公式。

数学模型用来描述系统在数学方面的运用,特别是在人工智能、大数据、科学和工程应用中,往往使用精准的数学算法。数学模型是表示这些功能需求的最好方式。

大牛又说道:“数学模型有的会比较复杂,如贝叶斯算法,有的会比较简单。例如,在工资管理系统中,使用一个总工资等于标准工资加加班费的计算模型就很合理。再如,在库存管理系统中,库存清单记录、产品价格折扣或者升职加薪,都可以用简单的公式来建模”。

小白说:“关于数学模型我明白一些了。举个简单的例子,如果要设计一个求圆面积的程序,那么圆面积公式就是该程序的数学模型了”。

大牛点了点头。

 

描述模型

小白指着黑板又说:“数学模型算是弄明白了,该讲描述模型了吧,前面关于快餐店电话在线订餐系统的功能列表是不是描述模型呢?”

大牛:“对的,很正确。描述模型就是用文字、列表、备忘录、报表等方式记录系统分析员的调研信息、和用户的调查谈话、以及调研过程中所做的工作等,系统分析员在编写需求规格说明书时,可以把这些描述型的叙述转化成描述模型”。

小白对大牛笑了笑说:“描述模型很容易理解,就是用简朴的文字把想说的内容写出来,就上个案例来说,功能列表就是一个描述模型,这么看来,描述模型的应用范围很广呢”。

大牛笑道:“厉害了,小白,分析的很透彻。其实,在需求分析中,有时叙述性描述是记录信息的最好方式,很多有用的信息系统模型都包括简单的列表。例如:特征列表、输入列表、输出列表、事件列表和用户列表等等。列表是一种准确、详尽、有效的描述或叙述性模型”。

大牛走到黑板前,把描述模型的相关定义及内容写到了黑板上。

描述模型—

描述系统某一方面的描述性的文字、列表、备忘录或报表。

大牛指着黑板上刚写的内容,对小白说:“在编程过程中,涉及到很多算法的处理过程和步骤,这些过程和步骤通常通过结构化列表或伪代码来描述,两种方法都可以得到相同的结果,因此,这种算法是非常精确的处理过程模型”。

大牛又说道:“举个例子,这个案例内容以一种精确的方式叙述处理过程或程序步骤”。

思考一个计算长方形面积的简单问题,要解决这个问题,需执行那些步骤?

问题的解决可分为下面几个步骤:

1) 设置num1和num2两个变量,用于存储用户输入的长度和宽度,设置result变量用来存储num1和num2的乘积。变量用于存储值,程序可修改这个值,后面Java语法会详细讲解;

2) 接受用户输入的长度和宽度,并存储到num1和num2两个变量;

3) 判断num1和num2是否大于0,如果大于0,继续下一个步骤,否则提示用户输入错误,程序结束;

4) 计算num1和num2的乘积,并将乘积结果存储到result变量;

5) 显示result变量的值到屏幕。

 

图形模型

小白:“够精确的,按照步骤基本可以编写程序了。步骤是不是也可以用流程图来表示呢?”

大牛:“上面案例的步骤当然可以用流程图来表示了,这也是我们将要说到的图形模型,图形模型就是用图形化的方式描述系统的某一方面,图形模型也有助于理解那些很难用文字来描述的复杂关系”。

大牛将一张图片投影到屏幕上。

产品经理——需求模型的分类

 

大牛:“这张图是前面案例步骤的图形化描述(流程图),图中有椭圆框、菱形框、平行四边形、长方形以及带线的箭头符号,这些符号表示一些抽象的概念,例如菱形符号在流程图中表示判断,矩形符号在流程图中表示处理过程等”。

小白:“还是图形模型好,一目了然。唯一的问题是要看懂图,首先要懂得图中符号所表示的意义”。

大牛:“是的,理想情况下,每一类模型图应该使用唯一的、标准的符号来表示一条信息。这样的好处是无论什么人都能看的懂模型,然而,模型图中可供使用的符号很少——椭圆、矩形、菱形、线等。因此,在实际中,你会发现每种模型使用的符号略有差别”。

大牛:“小白,前面我们谈了模型的类型,结合电话在线订餐系统案例,你说说数学模型、描述模型、图形模型在需求分析阶段如何灵活运用呢?”

小白:“数学模型可用于电话在线订餐系统的订餐统计、订餐人员自动归类建模,因为这些需求的实现需要用到数学方面的知识,需要建立统计公式和贝叶斯分类算法公式;描述模型可用于系统的功能需求列表及功能需求说明、以及客户管理、录音管理等子系统的功能列表及说明;图形模型可用于业务流程建模,例如接电话的流程、电话录音的流程等,用图形模型给业务流程建模,可以一目了然”。

大牛赞道:“归纳的不错,很好!”

大牛:“在一些情况下,描述模型也可以用图形模型来替代。例如,电话在线订餐系统功能需求列表就可以用UML建模语言的用例图来替代,功能说明在用例图中可以用描述模型进行补充。总的来说,在描述系统某一方面时,可以混合使用这三类模型,只要是能把需求说清楚,让他人能够理解、看懂就可以了”。

小白理解了模型的分类及运用,不过心中还是存在一些疑惑,在需求分析阶段要用到哪些具体模型呢(模型类型还是太抽象了,没有落地),有没有已经标准化的模型可以使用呢?