系统分析师19:【案例特训专题2】需求工程

1 需求获取

1.1 需求获取方法

在这里插入图片描述

1.1.1 可信度系数

在这里插入图片描述例如,如果希望订单样本集包含的所有情况具有90%的可信度,那么样本大小计算如下:

样本大小=0.25× ( 1.65 / ( 1 − 0.90 ) ) 2 (1.65/ (1-0.90) ) ^2 (1.65/(10.90))2=68.0625

1.1.2 用户访谈

在这里插入图片描述

1.1.3 问卷调查

  • 问卷调查:通过精心设计问卷并发放和收集,获取用户需求
    在这里插入图片描述

1.1.4 联合需求计划

  • 联合需求计划(JRP)∶通过高度组织的群体会议来分析企业内的问题并获取需求

在这里插入图片描述

1.2 案例分析

1.2.1 练习题1

某企业委托软件公司开发一套运动器材综合销售平台,以改进已有的销售管理系统,拓展现有的实体店销售模式,综合管理线上线下的器材销售业务。该软件公司组建项目组开发该系统,现正处于需求获取阶段。经过项目组讨论,由于目标系统业务功能比较复杂,所以在需求获取中针对不同类型的业务需求,采用不同的需求获取方法。项目组列出可选的需求获取方法包括:用户访谈、联合需求计划(JRP)、问卷调查、文档分析和实地观察等。
需求获取的要求如下:
(1〕获取已有销售管理系统中所实现的实体店销售模式和过程;(2)获取系统的改进需求和期望增加的业务功能;
(3)获取当前业务过程中的详细数据并深入了解这些数据产生的原因;
(4)从企业管理人员、销售人员、各种文档资源等尽可能多的来源获取需求;
(5)消除需求中出现的冲突,尽可能获取全面、一致的需求;
(6)尽可能多地让用户参与需求获取过程。

【问题1】(10分)
联合需求计划(JRP)是一种流行的需求获取方法。请说明什么是JRP,JRP与其它需求获取方法相比有什么优势?
【问题2】(12分)
针对题目中所描述的需求获取要求(1) ~ (6),选择最适合的需求获取方法填入表中的(a)~(f)处。
在这里插入图片描述
【问题3】(3分)
由于该企业销售规模较大,所积累的企业业务文档数量庞大,所以只能通过抽样实现不同类型的文档分析。如果对于每种类型的文档要求90%的可信度(可信度因子为1.645),那么不同类型的文档分别需要抽样多少份就能达到该要求?

1.2.2 参考答案

【问题1】
联合需求计划是一个通过高度组织的群体会议来分析企业内的问题并获取需求的过程,它是联合应用开发的一部分。JRP是一种相对来说成本较高的需求获取方法,但也是十分有效的一种。它通过联合各个关键用户代表、系统分析师、开发团队代表一起,通过有组织的会议来讨论需求。JRP将会起到群策群力的效果,对于一些问题最有岐义的时候、对需求最不清晰的领域都是十分有用的一种方法。

优势:1、发挥用户和管理人员参与系统开发过程的积极性,提高系统开发效率;2、降低系统需求获取的时间成本,加速系统开发周期; 3、采用原型确认系统需求并获取设计审批,具有原型化开发方法的优点。

【问题2】
(a)实地考察或文档分析
(b)用户访谈或联合需求计划
(c)用户访谈或联合需求计划
(d)问卷调查或文档分析
(e)联合需求计划
(f )联合需求计划
【问题3】
样本大小=0.25× ( 1.645 / ( 1 − 0.90 ) ) 2 (1.645/(1-0.90) ) ^2 (1.645/(10.90))2=67.65063
因此,需要抽取68份文档。

2 需求分析

2.1 需求分析-SA

在这里插入图片描述

2.1.1 需求分析-SA-DFD

  • 自顶向下逐步分解求精
    在这里插入图片描述在这里插入图片描述在这里插入图片描述

数据流图的平衡原则

  • 父图与子图之间的平衡
  • 子图内平衡

异常现象

  • 黑洞:一个加工只有输入数据流而无输出数据流。
  • 奇迹:一个加工只有输出数据流而无输入数据流。
  • 灰洞:若一个加工的输入数据流无法通过加工产生输出流。

在这里插入图片描述
在这里插入图片描述

2.1.2 答题技巧

在这里插入图片描述

  • 一、补充实体
    实体可能是;
    (1)人物角色:如客户、管理员、主管、经理、老师、学生
    (2)组织机构:如银行、供应商、募捐机构
    (3)外部系统:如银行系统、工资系统、后台数据库(当要开发的是中间件时)

  • 二、补充存储
    存储的文字方面特征:“**文件”“**表”“**库”“**清单”“**档案”

  • 三、补充数据流
    1、数据平衡原则
    (1)顶层图与0层图对比,是否有顶层图有,但0层图无的数据流,或反之。
    (2)检查图中每个加工,是否存在只有入没有出,或只有出没有入,或根据输入的数据无法产生对应的输出的情况。

    2、按题目说明与图进行匹配
    说明中的每一句话,都能与图中有对应关系,当把说明中的实体与数据流标识出来之后,容易缩小对应范围,找出纰潺。

  • 四、补充加工名
    加工是用于处理数据流的,所以要补充加工名,可以把该加工涉及的数据流在说明中标识出来,再在数据流名称所在的句子中,找“动词+名词”的结构,分析是否可作为加工。
    “动词+名词”如:生成报告,发出通知,批改作业,记录分数,当然这只是普遍情况,也有例外,如物流跟踪、用户管理。

2.2 案例分析2

2.2.1 练习题2

希赛公司拟开发一个商业情报处理系统,使公司能够针对市场环境的变化及时调整发展战略,以获取最大的商业利益。项目组经过讨论,决定采用结构化分析和设计方法。在系统分析阶段,为了更好地对情报数据处理流程及其与外部角色的关联进行建模,项目组成员分别给出了自己的设计思路:
(1)小张提出先构建系统流程图(System Flow Charts),以便更精确地反映系统的业务处理过程及数据的输入和输出;
(2)小李提出先构建系统数据流图(Data Flow Diagrams),来展现系统的处理过程和定义业务功能边界,并给出了情报分类子系统的0层和1层数据流图,后者如图所示。
在这里插入图片描述

项目组经讨论确定以数据流图作为本阶段的建模手段。
工程师老王详细说明了流程图和数据流图之间的区别与联系,并指出了图中的数据流图存在的错误。

【问题1】
流程图和数据流图是软件系统分析设计中常用的两种手段,请用300字以内文字简要说明流程图与数据流图的含义及其区别,并说明项目组为何确定采用数据流图作为建模手段。
【问题2】
请分析指出图中所示的数据流图存在的错误及其原因,并针对1层数据流图绘制出情报分类子系统的0层数据流图。
【问题3】
高质量的数据流图是可读的、内部一致的并能够准确表示系统需求。请用300字以内文字说明在设计高质量的数据流图时应考虑的三个原则。

2.2.2 参考答案

【问题1】
数据流图作为一种图形化工具,用来说明业务处理过程、系统边界内所包含的功能和系统中的数据流。流程图以图形化的方式展示应用程序从数据输入开始到获得输出为止的逻辑过程,描述处理过程的控制流。两者的区别如下:
①数据流图中的处理过程可并行;流程图在某个时间点只能处于一个处理过程。
②数据流图展现系统的数据流;流程图展现系统的控制流。
③数据流图展现全局的处理过程,过程之间遵循不同的计时标准;流程图中处理过程遵循一致的计时标准。数据流图适用于系统分析中的逻辑建模阶段;流程图适用于系统设计中的物理建模阶段。

【问题2】
存在的错误有以下4种:
(1)“分类训练”加工:只有输入没有输出,产生数据黑洞。
(2)“分类处理”加工:有输出没有输入,无中生有。
(3)“规则文件”数据流:外部实体没有经过加工处理,直接到数据存储。
(4)“配置信息”数据流:外部实体之间没有加工处理,存在直接数据流。
在这里插入图片描述
【问题3】
高质量数据流图设计时应考虑的三个原则如下:
(1)复杂性最小化原则。数据流图分层结构就是把信息划分为小的且相对独立的一大批子集例子,这样就可以单独考察每一个数据流图。如果要了解某个过程更加详细的信息,可以跳转到该过程的下一层;如果要知道一个数据流图如何与其他数据流图相关联,可以跳转到上一层的数据流图进行考察。
(2)接口最小化原则。接口最小化是复杂性最小化的一种具体规则。在设计模式时,应使得模型中各个元素之间的接口数或连接数最小化。
(3)数据流一致性原则。一个过程和它的过程分解在数据流内容中是否有差别?是否存在有数据流出但没有相应的数据流入的加工?是否存在有数据流入但没有相应的数据流出的加工?

2.3 UML

在这里插入图片描述

2.4 面向对象分析

在这里插入图片描述

2.4.1 用例图

用例图描述一组用例、参与者及它们之间的关系。

  • 用户角度描述系统功能;
  • 参与者是外部触发因素;
  • 用例是功能单元。
    在这里插入图片描述

2.4.2 用例模型

用例模型建立流程
第一步:识别参与者【参与者:用户、组织、外部系统、时间】
第二步:合并需求获得用例
第三步:细化用例描述
第四步:调整用例模型(可选步骤)【关系包括:包含关系、扩展关系、泛化关系】

2.4.3 细化用例描述

  • 以登录用例为例
    在这里插入图片描述

2.4.4 用例关系【包含、扩展、泛化】

  • 包含关系【使用关系】︰从多个用例中提取公共行为,提取出来的公共用例称为抽象用例,而把原始用例称为基本用例。
  • 扩展关系:一个用例明显地混合了两种或两种以上的不同场景,即根据情况可能发生多种分支,则可以将这个用例分为一个基本用例和一个或多个扩展用例。
  • 泛化关系︰当多个用例共同拥有一种类似的结构和行为的时候,可以将它们的共性抽象成为父用例,其他的用例作为泛化关系中的子用例。子用例继承了父用例所有的结构、行为和关系。
    在这里插入图片描述
    例题讲解
    在某银行业务的用例模型中:“取款”和“存款”两个用例中都需要执行查询余额的功能,将查询余额提取成独立的用例,那么“取款”和“存款”用例与“查询余额”用例之间的关系属于( )。
    A:扩展关系
    B:包含关系
    C:依赖关系
    D:继承关系

解析
都要用到某个功能,然后把该功能抽离出来,属于包含关系。
答案:B。

2.4.5 建立分析模型

【分析模型】建立流程
第一步:定义概念类
第二步:确定类之间的关系
第三步:为类添加职责
第四步:建立交互图
第五步:分析模型的详细程度问题

2.4.6 类图与对象图

第一步:定义概念类
1、阅读和理解需求文档或用例描述。
2、筛选出名词或名词短语,建立初始类清单(候选类)。
3、将候选类分成三类,分别是显而易见的类、明显无意义的类和不确定类别的类。
4、舍弃明显无意义的类。
(1)去除相同含义的
(2)去除不属于系统范围内的
(3)去除没有特定独立行为的
(4)去除含义解释不清楚的
(5)去除属于另一个类属性或行为的

5、小组讨论不确定类别的类,直到将它们都合并或调整到其他两个类别,并进行相应的操作。

第一步:定义概念类【示例】
一、主事件流
1、客服人员向系统发出“开通课程”请求。
2、系统要求客服人员选择开通课程的类型(软考、考研、专业课程、自学考试、Java课程)。
3、客服人员做出选择后,系统显示相应界面,让客服人员输入信息,并自动根据权限规则生成权限。
4、客服人员输入学员的相关信息,包括学员用户名、所交费用、交费时间、选修课程名称。
5、系统确认学员所交费用和所选修课程的规定费用一致。
6、系统将所输入的信息存储建档,开通学员课程权限。
二、备选事件流
5a)如果学员所交费用少于所选修课程的规定费用,则显示所选修课程的规定费用,并要求客服人员选择修改或取消输入。
5a1)客服人员选择取消输入,则结束用例,不做存储建档工作。
5a2)客服人员选择修改用户所交费用后,转到5)。
5b)如果学员所交费用多于所选修课程的规定费用,则显示多余的费用数量,并要求客服人员选择是转换为学习币还是退还给学员。
5b1)客服人员选择转换为学习币,则把多余的费用转换为学习币,记入学员账户中,转到5)。
5b2)客服人员选择退还给学员,转到5)。
5c)如果学员所选修的课程超出了系统规定的选修人数,则提示客服人员,结束用例。
在这里插入图片描述
第二步:确定类之间的关系

  • 依赖关系:一个事物发生变化影响另一个事物。
  • 泛化关系:特殊/一般关系。父子关系。
  • 关联关系:描述了一组链,链是对象之间的连接。
    • 聚合关系:整体与部分生命周期不同。整体消亡,部分继续存在。
    • 组合关系:整体与部分生命周期相同。整体消亡,部分跟着消亡。
  • 实现关系:接口与类之间的关系。
    在这里插入图片描述
    在这里插入图片描述

类图(class diagram):类图描述一组类、接口、协作和它们之间的关系。

对象图(object diagram) :对象图描述一组对象及它们之间的关系。对象图描述了在类图中所建立的事物实例的静态快照。

  • 类名,方法名,属性名
  • 多重度
  • 关系
    在这里插入图片描述

例题讲解
UML用关系把事物结合在一起,()描述一个事物发生变化会影响另一个事物的语义;()描述特殊元素的对象可替换一般元素的对象。
A:聚合关系
B:关联关系
C:包含关系
D:依赖关系

A:实现关系
B:聚合关系
C:泛化关系
D:关联关系

解析
依赖关系:描述一个事物发生变化会影响另一个事物
泛化关系:描述特殊元素的对象可替换一般元素的对象
答案:D、C。

希赛公司欲开发一个在线交易系统。为了能够精确表达用户与系统的复杂交互过程,应该采用UML的()进行交互过程建模。
A:类图
B:顺序图
C:部署图
D:对象图

解析
表达用户与系统的复杂交互过程只有动态图能实现,静态图实现不了。顺序图属于动态图,类图】部署图、对象图均属于静态图。
答案:B。

()适用于描述复杂算法的执行流程。
A:活动图
B:状态图
C:类图
D:用例图

解析
活动图:和流程图极为相似,还能变现并发,因此适用于描述复杂算法的执行流程。
答案:A。

面向对象分析的任务不包含( ) 。
A:建模系统功能
B:发现并确定业务对象
C:建模各对象的状态
D:组织对象并确定对象间的关系

解析
面向对象是一种阶段不明确的方法论。
确定功能=》确定对象=》确定对象间的关系,顺序A、B、D。
C更偏向于需求设计。
答案:C。

面向对象分析的一项重要任务是发现潜在对象并进行筛选,错误的做法是删除( )。
A:系统范围之外的名词
B:表示事件的名词
C:不具有独特行为的名词
D:一个对象的同义词

解析
排除法:系统范围之外的名词、不具有独特行为的名词、一个对象的同义词均可删除,表示事件的名词不可删除。
答案:B。

2.4.7 顺序图

顺序图(Sequence Diagram,序列图)。顺序圈是一种交互圈(InteractionDiagram),它强调对象之间消息发送的顺序,同时显示对象之间的交互。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值