1、功能需求描述
(1)实现带单个运算符表达式的计算;
(2)用户可以重复输入表达式进行计算;
(3)输入quit退出程序;
(4)显示程序帮助内容。
2、角色划分与用例描述
【描述程序所涉及的角色及其职能,并对角色进行编号,采用字母R开头加序号的编号规则,例如R001,R002等。描述本程序所涉及的用例,并对用例进行编号,采用字母U开头加序号的编号规则,例如U001,U002等,画出用例图。】
角色是与程序相关的人和物,是指程序以外的,在使用程序或与程序交互中所扮演的角色。例如:使用程序的人、程序运行所依赖的环境等,本节主要讨论程序与人相关的角色。
本程序涉及的角色只有一个,就是程序的使用者,使用者输入算式,程序给出算式结果;使用者输入quit命令,程序退出;当使用者不熟悉该程序如何使用时,使用者可以查看程序给出的帮助说明。

本程序采用用例图对角色功能进行描述,通过用例图对功能需求进行分析和整理,绘制用例图的过程就是程序建模过程,建立的模型就是用例模型。
通过角色分析可知,程序使用者有三个用例模型,分别是输入算式、退出程序、查看帮助。

3、用例图
在一个用例图中通常有三种元素:参与者(Actor)、用例(Use Case)与程序边界(Boundary)。用例描述的是程序为用户提供的功能,也就是程序能为用户做什么,图例符号为一个椭圆;参与者是表10-1中划分的角色,也就是程序的使用者,图例符号为一个小人儿;最后是程序边界,程序边界描述了程序本身实现的功能与外部交互的边界,例如:参与者在程序边界之外,用例在程序边界之内,图例符号为一个方框。
(1)算式计算用例图(U001)

图 2?1 算式计算用例图U001
算式计算用例包含5个子用例,其中<输入算式>用例、<算式求解>用例、<查看答案>用例和使用者有交互行为,<计算算式>用例和<扫描算式>用例为内部用例,由<算式求解>用例调用并使用,<扫描算式>用例扫描算式,如果发现算式错误,由算式求解返回错误给使用者。
(2)退出程序用例图(U002)

图 2?2 退出程序用例图U002
该用例包含两个子用例,用例<输入判断>用于判断用户输入的字符串,如果字符串等于“quit”,调用<退出程序>用例退出程序。
(3)查看帮助用例图(U003)

图 2?3 查看帮助用例U003
该用例包含两个子用例,用例<输入判断>用于判断用户输入的字符串,如果字符串等于“help”,调用<输出帮助内容>用例显示帮助内容。