软件工程第06章

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Jackson方法在需求分析阶段的主要步骤是:
(1)标识实体与行为。
(2)生成实体结构图。
(3)创建软件系统模型。
6.2.1 标识实体与行为
类似于面向对象分析中对象及其行为的识别, Jackson方法针对初步需求分析形成的用户需 求描述进行语法分析:
名词及名词短语——潜在的实体,
相关的动词——构成实体的潜在行为。
图6-1-6
6.2 Jackson系统开发方法
1975年,英国人M.A.Jackson提出了软件工程领域中 著名的Jackson方法,当时它只用于软件设计。1983 年,Jackson又对它进行了多方面的扩充和完善,最 终发展成为一种需求分析方法。
其核心思想是:根据作用于数据的行为序列的结构 (顺序、选择、重复),建立目标软件系统的模型, 然后在软件设计阶段将模型转换为相应的程序结构。
一点与面向对象分析有相似之处。 2.认为复合信息对象具有层次结构,并且可按顺
序、选择、重复三种结构分解为成员信息对象。 3.提供将层次信息结构映射为程序结构的机制,
从而为软件设计奠定较好的基础。
6.1 面向数据结构的系统开发方法
DSSD也叫Warnier-Orr方法。
1974年,法国人J.D.Warnier提出了一种LCP (Logical Construction of Programs,逻辑构造程 序)。他利用顺序、选择、重复三种结构表示信息 的层次分解,并指出可以从信息层次结构推导出程 序结构。
“数据流”(Data Stream)记号——表示现实世界 中的过程或装置不断地向目标软件系统中的相应过 程发送数据,后者以先进先出方式消费数据。两者 之间的缓冲区容量是无限的。
“状态向量”(State Vector)记号——表示在两者之 间存在状态向量,发送方设置状态向量,接收方读 取状态向量。
数据流(Data Stream)
客户
订 单 处 理 员 接 订单编号 收并登录订单
订单编号 客户姓名、地址 预定日期 支票编号
软件名称、编号 作者 数量 单价 总价
邮寄员提取、 包装软件产品
邮寄品
软件编号 数量
邮局
预定日期
客户姓名、地址
订单文件
图6-1-2 软件专卖店管理系统的数据流图
结算系统 管理系统
1.标识实体图
在DSSD中,与应用问题有关的实体及它们之间的 信息流用实体图表示。
Warnier图
Warnier图又称为Warnier-Orr图,可以表示数据结 构和程序结构。考虑一个典型的报纸自动组版系统。 报纸作为其中重要的信息对象,具有以下内容: 1.首版
1)标题新闻 2)国内新闻 3)本地新闻 2.商业金融版 1)股市行情 2)商业新闻 3)广告 3.文化体育版 1)文化、体育新闻 2)散文 3)新书评论 该信息结构用Warnier图如图6-1-1所示。
过程0
DS
过程1
状态向量(State Vector)
过程0
SV
过程1
约定:0 表示现实世界中的过程或装置, 1 表示目标软件系统中的过程
图6-2-3 系统规格说明图的图形记号
在前述应用问题中,站内按钮和目标软 件中的按钮处理过程之间以“数据流” 方式连接,交通车和交通车控制过程之 间则应以“状态向量”方式连接。见图 数据6流-2联-4系。
客户
邮 寄 邮寄品 员
支 付
催款
订单 处理员
软件 产品 软件产品库
结算员 管理员
银行
订单信息= 客户姓名+ 地址+ 软件名称与编码+ 支票编号
图6-1-4 组合实体图示例
2.创建信息-过程图
DSSD中的信息-过程图与数据流图的作 用类似,都是用来表示信息流及其处理 功能的。但是,信息-过程图从每个实体 的输出信息流开始,逆向寻找用于生成 该输出信息的输入信息流及相应的处理 功能。
第6章 面向数据的分析方法与形式化方法
除了面向数据流的分析方法,仍有其他一些方法可 供分析人员选择,这些方法包括面向数据结构的系 统开发方法(DSSD),Jackson系统开发方法 (JSD)以及形式化软件规格说明技术。前两种统 称为面向数据的需求分析方法。它们的共同特点是: 1.以信息对象及其操作为核心进行需求分析,这
Button-0
DS
Button-1
状态向量联系
Shuttle-0
SV
图6-2-4 系统规格说明图示例
Shuttle-1
创建模型的第二步是利用Jackson给出的“结构正文” (Structure Text)将实体结构图和系统规格说明图综 合起来,并针对目标软件系统中的每一过程用正文方 式给出更为精确、更为详尽的描述。
Shuttle
Leave(1) Shuttle* Arrive(1) body
Station(i)
Button Push*
Arrive(i) Leave(i) 图6-2-2 实体结构图示例
6.2.3 创建软件系统模型
创建目标软件系统模型的第一步,Jackson方法要 求分析人员首先用图6-2-3所示的图形记号建立系统 规格说明图(System Specification Diagram)。
分析人员根据应用问题的边界及自己的理解, 决定对潜在实体和行为的取舍。
6.2.1 标识实体与行为
【例6.1】北华大学决定将分处两地的校园用直达 交通车连接起来。在每个校园设一个站,站内配 置一个按钮。学生通过按钮请求交通车搭载。交 通车应尽快满足学生的请求。空闲时,交通车停 在任意站等候。
分析人员可从“大学”、“校园”、“交通 车”、“车站”、“学生”、“按钮”等名词中 选取与应用问题相关的实体:“交通车”、“车 站”、“按钮”。与它们有关的行为是:“到 站”、“离站”、“按键”。“等候”和“运行” 可以作为“交通车”的状态。
BUUTTON_1
Read ButtonDown 信号
PUSH_BODY itr while ButtonDown /* 循环结构 */
PUSH
/* 按键处理 */
Read ButtonDown 信号
PUSH_BODY end
BOTTON_1 end
6.2.3 创建软件系统模型
SHUTTLE_1 seq
邮寄品 客户姓名—— 定单编号——
地 址—— 软件编号——
客户信息
姓名 地址 电话
电 话—— 单 价—— 总 价—— 数 量—— 发件人姓名—— 总 价——
邮寄品
软件产品 信息
软件编号(1~n) 单价(1~n) 总价
地址—— 电话——
姓名 客户信息 地址
电话
(a)输出信息的表格表示
(b)Warnier-Orr图
顺序结构
重复结构
选择结构
*
°
°
图6-2-1 实体结构图的图形记号
例6.1的实体结构图如图6-2-2所示。在图中,i 只能 取值1或2。并且,在“站(i)”的重复序列中,i 首先取2,然后交替变化。交通车首先停在站1,然 后在两站之间反复往返运行,最后停靠在站1。为 了刻画交通车在两站之间的往返穿梭,引入了虚拟 的概念实体“Shuttle body”。
Read 状态向量
TRANSIT_BODY1 end
Leave(1)
/* 控制交通车离开站1 */
SHUTTLE_BODYwk.baidu.comitr
/* 往返重复运行 */
STATION seq
Arrive(i) /* 控制交通车减速,准备停靠站i */
WAIT_BODY itr while Wait(i) /* 如果状态向量
许多软件开发实践都希望借助于形式化方法严格地 定义用户需求,并通过数学推演而不是代价昂贵的 失败教训来确保需求定义的一致性和完整性。本节 简要介绍形式方法的引入、主要思想、分类、优缺 点以及软件形式开发方法。
6.3.1 形式化方法的引入
在传统的软件开发过程中,人们普遍采用许多非形式 化的图形工具和文字符号工具,例如:数据流图 (DFD)、模块结构图(SC)、IPO图、结构化语言、 类程序设计语言、判定表、判定树等,并按照一定的设 计原则和有序步骤,或自上而下或循环往复逐步开发出 目标软件,同时手工或辅助编写有关设计文档。
Transit(i)*
6.3 形式化方法简介
前面对数据流图等语言机制并未给出数学意义上严 格的语法和语义说明。因此,这些需求模型都或多 或少地带有不精确性、不完整性,甚至不一致性。 需求分析完成后,软件开发的正确实施仍有赖于设 计人员对分析人员主观意图的揣摩,而不仅仅取决 于他们对需求文档的客观理解。
报纸
Warnier图
首版
标题新闻 国内新闻 本地新闻
商业金融版 文化体育版
股市行情(0,1) 商业新闻 广告(1,5)
文化、体育新闻 散文
新书评论
图6-1-1 Warnier 图示例
Warnier图
花括号内的信息条目构成顺序关系; 花括号从左至右排列表示树型层次结构; 符号“⊕”表示不可兼具的选择关系; “ ̄”表示“非”。 圆括号内的数字表示重复次数:
1981年Ken Orr对Warnier的工作进行了扩充,使其 不仅包含了Warnier的信息层次结构,还引进了数据 流和处理功能,从而发展成为一种需求分析方法。
本节首先介绍Warnier图,然后以此为基础阐述 DSSD方法,其主要内容包括:如何创建实体图、信 息过程图及Warnier-Orr原型图。
6.2.2 生成实体结构图
在Jackson方法中,实体结构是指实体在时间坐标系中 的行为序列。这种序列以顺序、选择和重复三种结构 进行复合。Jackson给出的实体结构图的表示机制如图 6-2-1所示。其中的子结点既可以是行为,也可以是子 实体。在后一种情况下,子实体应该继续分解,不能 作为实体结构图的叶结点。
(1,n)表示重复结构, (1)或不标次数表示顺序结构, (0,1)表示选择结构。
6.1.2 DSSD方法
基于DSSD需求分析方法的主要步骤是:
1)标识与应用问题有关的实体。
2)创建一种类似于数据流图的信息-过程图。
3)创建Warnier-Orr原型图。
在详细介绍DSSD的具体步骤之前,首先用数据流 图描述一个基于计算机的软件专卖店管理系统,见 图6-1-2。(该数据流图并非DSSD的组成部分,仅 用于说明后面将要用到的应用问题实例。)
/* 顺序结构 */
Read 状态向量
WAIT_BODY1 itr while Wait(1) /* 如果状态向量
中等待标志置位,则循环等待 */
Read 状态向量
WAIT_BODY1 end
TRANSIT_BODY1 itr while Transit(1) /* 如果状态向
量中运行标志置位,则一直运行 */
中在站i的等待标志置位,则循环等待 */
Read 状态向量
WAIT_BODY end
Leave(i)
TRANSIT_BODY itr while Wait(i)
Read 状态向量
TRANSIT_BODY end
STATION end
SHUTTLE_BODY end
Arrive(1)
SHUTTLE_1 end
管理员
银行
订单 处理员
结算员
邮局
客户
客户姓名 地址
订单 邮寄员 编号
订 软件名称、 单
编号

支票编号 理
订单编号

订单编号
结算员
注:实体图中的结点表示实体、有向边表示实体之间的信息流。
(a)信息的生产者和消费者 (b)实体图示例 图6-1-3
当所有实体的实体图都构造完成后,将它们综合起 来便形成整个目标软件系统的实体图。
2.创建信息-过程图
邮寄品
订单编号 软件产品
订购信息 + 订单编号过程
+
邮寄品包装
图6-1-5 信息-过程图示例
邮寄品是由订单编号和软件产品经过邮寄品包 装过程生成的,订单编号又是由客户订购信息 和订单编号过程生成的。
3.创建Warnier-Orr原型图
DSSD方法要求分析人员在最后以表格形式给出主要的 输出信息的组成元素(见图6-1-6(a)),然后将其精 确地表示为Warnier-Orr图(见图6-1-6(b))
Shuttle -1
wait- body1
Leave(1)
TRANSit- b ody1
Shuttlebody1
Arrive(1)
Wait(1)*
Transit(1)* Station(i)*
Arrive(i)
wait- body
Leave(i)
TRANSit body
Wait(i)*
图6-2-5 对应于结构正文的结构图
具体地,分析人员可以通过对下述问题的回答来生 成实体图:
1)软件系统必须处理哪些信息项?
2)信息项的生产者和消费者分别是哪些实体?
在上述应用问题中,有关的实体是:客户、订 单处理员、邮寄员、银行、结算员、管理员和邮局, 如图6-1-3(a)所示。
订单处理员的实体图如图6-1-3(b)所示。
客户
邮寄员
以信息对象及其操作为核心进行以信息对象及其操作为核心进行需求分析需求分析复合信息对象具有层次结构可按顺序复合信息对象具有层次结构可按顺序选择重复分解为成员信息对象选择重复分解为成员信息对象提供将层次信息结构映射为程序提供将层次信息结构映射为程序结构的机制结构的机制61面向数据结构的系统开发方法62jackson系统开发方法63形式化方法简介面向数据的分析方法提出了一种提出了一种lcplcp逻辑构造程序
相关文档
最新文档