软件工程第三章(需求分析)
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
快速原型应该具备的第一个特性是“快 速”。快速原型的目的是尽快向用户提 供一个可在计算机上运行的目标系统的 模型,以便使用户和开发者在目标系统 应该“做什么”这个问题上尽可能快地 达成共识。
快速原型应该具备的第二个特性是“容 易修改”。在实际开发软件产品时,原 型的“修改—试用—反馈”过程可能重 复多遍,如果修改耗时过多,势必延误 软件开发时间。
软件开发过程实际是:人通过抽象、归纳把客 观系统变换到软件系统,并保证软件系统的解等价 客观系统的解。 客观系统 变换 解的等价 客观系统的解 软件系统的解 软件系统
二、模型的描述方法
数学模型 描述模型 图形模型
三、模型的作用
在建模过程中了解系统 通过抽象降低复杂性 有助于回忆所有的细节 有助于开发小组间的交流 有助于与用户的交流 为系统的维护提供文档
2、数据元素定义举例
例1.日期 名字:日期 = (年、月、日) 说明:年 = (1990~2010) 月 = (1~12) 日 = (1~31) 例2.账号 名字:账号 说明:(00000~99999)
例3.婚姻状况 名字:婚姻状况 说明: M = 已婚 S = 未婚 D = 离婚
从以上例子可以看出,说明信息就是给出数据元素的 取值范围或内容。 数据元素的说明信息除了主要说明以上内容外,还应 考虑包含:别名、数据元素长度、相关的数据元素和 数据结构、编辑方面的要求等。
面向对象分析模型的组成结构
操作、
对象-关 类/对象 使用实例 系模型 模型
(Use Case)
对象-行为模型
§3.4.2 结构化分析方法
(Structured Analisys, SA)
ቤተ መጻሕፍቲ ባይዱ
一、结构化分析方法
面向数据流进行需求分析的方法 结构化分析方法适合于数据处理类 型软件的需求分析
具体来说,结构化分析方法就是
前述四种基本图形元素 数据流图的数据流必须封闭在外 部实体之间 每个加工至少有一个输入数据流 和一个输出数据流
在数据流图中,需按层给加工框
编号。编号表明该加工所处层次 及上下层的亲子关系 规定任何一个数据流子图必须与 它上一层的一个加工对应,两者 的输入数据流和输出数据流必须 一致。此即父图与子图的平衡
3.3.2需求分析的过程
(1) 通过对现实环境的调查, 获得当前系统的物理模型
购 书 购 领 交 申 书 书 款 书 请 单 单 学 教务科 会计室 单 出纳员 教材科 107 206 206 生 现 李 赵 张 王
金
学 生
学生购买教材的实际处理流程—当前系统物理模型
(2) 去掉具体模型中的非本质因素,
6. 约束 设计约束或实现约束描述在设计或实现应用 系统时应遵守的限制条件。常见的约束有: 精度;工具和语言约束;设计约束;应该使 用的标准;应该使用的硬件平台。 7. 逆向需求 逆向需求说明软件系统不应该做什么。 8. 将来可能提出的要求 应该明确地列出那些虽然不属于当前系统开 发范畴,但是据分析将来很可能会提出来的 要求。
图上每个元素都必须有名字, (1)数据流名应代表整个数据流的内容,而不是它的 某 些成分 ; (2)如果为某个数据流命名困难,可能分解不当,尝 试重新分解 (3)加工名一般为动宾词组 (4)如果用两个动词组成的加工,最好分解为两个加 工 (5)如果对加工命名困难,尝试重新分解
流图中不能出现判断分支的控制流,
3、结构化分析方法步骤示例
商店业务处理系统
数据流图绘制步骤 首先确定系统的输入和输出 根据商店业务,画出顶层数据
流图,以反映最主要业务处理 流程
经过分析,商店业务处理的主
要功能应当有销售、采购、会计 三大项。主要数据流输入的源点 和输出终点是顾客和供应商。 然后从输入端开始,根据商店 业务工作流程,画出数据流流经 的各加工框,逐步画到输出端, 得到第一层数据流图
计算机教材管理系统的逻辑模型
需求分析过程示意
(4) 对目标系统的逻辑模型进行改进与优化
(5) 需求分析的验证
§3.4 需求分析建模方法
3.4.1分析建模方法 分析建模是使用文本 和图表形式的组合,以 相对容易理解和能直接评审正确性、完整性 和一致性的方式来描述数据、功能和行为的 需求。
结构化分析SA(传统建模方法)
另外也可以先画出系统的输入数
据流和输出数据流,沿数据流图 从输出端往输入端回溯,可以确 定每个数据元素的来源,逐渐定义 出系统的详细功能。每一个加工 也是先画其输入输出,再考虑其 内部。
第一层数据流图
加细每一个加工框
销售细化
采购细化
4、检查和修改数据流图的原则
数据流图上所有图形符号只限于
用抽象模型的概念,按照软件内 部数据传递、变换的关系,自顶 向下逐层分解,直到找到满足功 能要求的所有可实现的软件为止 结构化分析方法使用工具:数据 流图,数据词典,结构化英语, 判定表与判定树
二 数据流图(DFD,Data Flow Diagram)
1、数据流图中的主要图形元素
描述银行取款过程的数据流图
3.1.2 需求的内容
1. 功能需求 这方面的需求指定系统必须提供的服务。通过需求 分析应该划分出系统必须完成的所有功能。 2. 性能需求 性能需求指定系统必须满足的定时约束或容量约束 ,通常包括速度(响应时间)、信息量速率、主存容 量、磁盘容量、安全性等方面的需求。
3. 可靠性和可用性需求 可靠性需求定量地指定系统的可靠性。 4. 出错处理需求 这类需求说明系统对环境错误应该怎样响应 5. 接口需求 接口需求描述应用系统与它的环境通信的格 式。常见的接口需求有:用户接口需求;硬 件接口需求;软件接口需求;通信接口需求
3.3 需求建模
3.3.1需求表达的途径 一、建模
所谓模型,就是为了理解事物而 对事物做出的一种抽象,是对事 物的一种无歧义的书面描述。通 常,模型由一组图形符号和组织 这些符号的规则组成。
模型化或模型方法是通过抽象、概 括和一般化,把研究的对象或问题转化 为本质(关系或结构)相同的另一对象 或问题,从而加以解决的方法。
如果需要每个分支必须单独出现 流图中可以出现封闭在局部的实体和 存储文件 初画时可以忽略琐碎的细节,以集中 精力于主要数据流
三.数据字典(DD,DataDictionary)
DD是对数据流图中所有定义的数据 元素、数据结构、数据文件、数据流等 进行严密而精确的一个有组织的列表, 以及精确的、严格的定义,使得用户和 系统分析员对于输入、输出、存储成分 和中间计算有共同的理解
需求获取面临的挑战
问题的复杂性和对问题空间 理解的不完备性与不一致性
交流障碍 需求易变性
3.2.2需求获取的常用方法
(1)个别访谈和召集会议
(2)观察用户工作流程 (3)利用原型 (4)使用实例(用例):用例把系统分 成一组逻辑的、互相联系很少的部分,每 一部分都描述了系统运行的某种方式。因 此容易理解每个用例达到的功能。
某出版社系统调查表
编 号
1 2 3 4 5
6
提出问题
您在哪个部门工作? 出版业务流程是什么? 您每日都处理那些文件、数据、报表? 工作中手工处理特别麻烦的事情是什么? 工作中手工处理什么问题解决不了?影响 效率的问题有哪些?
您认为提高工作效率,节省工作时间,减 轻工作强度可采取哪些办法?
某出版社系统调查表
1、数据词典的构造准则
⑴.数据流图中出现的名字都应编制一个数据条目。而且 只能有一个条目,不能重复定义。 ⑵.应按自底向上的方式对数据进行定义,先定义数据元 素,后定义数据结构,再定义数据流或数据文件。
数据文件 数据流
数据结构
数据元素(项)
数据组成的层次关系
1、数据词典的构造准则(续)
⑶.定义时所用的词汇都应是有明确的含义, 只能有一种理解。 ⑷.条目应有序编排。
2、对需求信息的分析和综合——需求规约
充分理解需求,包括功能、性能和数据需求
采用需求分析方法
3、编制“需求规格说明书”
需求规格说明书使用的语言
书写要求
4、需求分析的复审
§3.2 需求获取
3.2.1 需求获取的目的
清楚地理解所要解决的问题 完整准确地表达用户的需求
数据流与数据加工之间的关系
2、数据流图的层次结构
为了表达数据处理过程的数据加
工情况,需要采用层次结构的数 据流图。按照系统的层次结构进 行逐步分解,并以分层的数据流 图反映这种结构关系,能清楚地 表达和容易理解整个系统
图 数据流图的分解
在多层数据流图中,顶层流图仅
包含一个加工,它代表被开发系 统。它的输入流是该系统的输入 数据,输出流是系统所输出数据 底层流图是指其加工不需再做分 解的数据流图,它处在最底层 中间层流图则表示对其上层父图 的细化。它的每一加工可能继续 细化,形成子图。
抽取现实系统的实质,抽象出当前系统 的逻辑模型。
购 书 申 学 请
生
审查 有效性
购 书 单
交 款 开领 单 开交款单 书单
领 书 单 发书
书
学 生
学生购买教材的逻辑模型
(3) 分析当前系统与目标系统的差别, 建立目标系统的逻辑模型
无效书单
学 生
购书单
审查并 开交款单
交款单
开领 领书单 学 书单 生
3.1 需求分析的任务
3.1.1 需求的概念
需求(requirements) Jones 定义为用户所需要的软件必须达 到的目标和能力。 Lethbridge定义为需求是关于系统将要 完成什么工作的一段描述,他们必须经过 所有相关人员的认可,其目的是彻底的解 决用户的问题。
• 需求是一段描述…:意思是每个需求是相 对短小简明的一段信息,表现为一个事实。它可 以是一段话或用各种图表示。一组需求的集合成 为需求文档。 •关于系统将要完成什么工作…:需求描述了 系统应当完成的任务,不描述系统将如何实现。 •必须经过所有相关人员的认可…:意指需求 必须经过评审,才能成为正式的需求。 •其目的是彻底的解决用户的问题。有助于解 决用户的问题,该需求才有存在的价值。
第三章 软件需求分析
需求分析概述
准确地定义未来系统的目标,确定为了 满足用户的需求,系统必须做什么。用 <需求 规格说明书> 规范的形式准确地表达用户的 需求。 在需求分析阶段,系统分析员的主要焦 点是 “做什么(what)” ,不是 “怎样做 (how)”
下面是一组漫画 这组漫画形象地刻画了一个事实 获取完整正确的需求是一项十分困难的工 作
控制说明
• 数据字典:包含了软件生产或使用的所有数据 对象描述的中心存储库。 • 实体-关系图(ERD):描述数据对象间的关 系,每个对象的属性由“数据对象描述”来描述。 • 数据流图(DFD)用于两个目的: ①指明数据在系统中移动时如何被变换; ②反映对数据流进行变换的功能(和子功能); 在DFD中出现的每个功能的描述包含在“加工 规约”中。 • 状态转换图(STD):指明作为外部事件的结 果系统将如何动作,有哪些行为。软件控制方面的 附加信息包含在“控制规约”中。
面向对象分析(OOA)
现实世界
面 向 OOA 对 象 开 OOD 发 方 法 OOP
结 构 化 开 发 方 法
结构化 分析
结构化 设计
结构化 编程
计算机世界
结构化分析模型的组成结构
加 数 据 E-R图 数据流图 工 说 ( DFD ) 对 数据字典 明 象 (DD) 说 明 状态变迁图 (STD图)
编 号 7 8 9 提出问题
您的部门需要成本核算和统计的内容有哪 些? 您的部门采用计算机管理工作情况如何?
如何改进业务流程使之更合理?
10 哪些问题是目前传统手工方法根本无法解 决的? 11 出版社计算机管理信息系统需要解决什么 问题?
3.2.3 快速建立软件原型
快速原型就是快速建立起来的旨在演示 目标系统主要功能的可运行的程序。 构建原型的要点,它应该实现用户看得 见的功能(例如,屏幕显示或打印报表),省 略目标系统的“隐含”功能(例如,修改文件 )。
3.1.3 需求的描述方法
分析系统的数据要求,这是软件需求分析的 一个重要任务。分析系统的数据要求通常采 用建立数据模型的方法 (1)结构化语言 (2)图形化表示 (3)数学描述(形式化描述)
3.1.4需求分析的过程
1、对问题的识别和理解——需求获取
是一个调查研究的过程 分析人员需要具有较高的技能