当前位置:文档之家› 第二章 需求分析

第二章 需求分析

和数据模型等内容进行描述。 作为后续的软件设计和测试的重要依据,需求阶 段的输出文档应该具有清晰性、无二义性和准确 性,并且能够全面和确切地描述用户需求。
需求说明书的编写提示
1 引言 1.1 编写目的 说明编写这份软件需求说明书的目的,指出预期的读者。 1.2 背景 说明:a. 待开发的软件系统的名称; b. 本项目的任务提出者、开发者、用户; c.该软件系统同其他系统或其他机构的关系。 1.3 定义 列出本文件中用到的专门术语的定义。 1.4 参考资料
需求说明书的编写提示
4 运行环境规定 4.1 设备 列出运行该软件所需要的硬设备。说明其中的新型设备及其 专门功能,包括: a.处理器型号及内存容量; b.外存容量、输入及输出设备的型号和数量,联机或脱机; d.数据通信设备的型号和数量; e.其他专用硬件 4.2 支持软件 包括要用到的操作系统、编译(或汇编)程序、测试支持软 件等。
包图
UML简介
UML(Unified Modeling Language),即统一建模 语言,是一种标准的图形化建模语言。它主要用 于软件的分析与设计,用定义完善的符号来图形 化地展现一个软件系统。 UML的使用可以贯穿于软件开发周期的每一个阶 段,适用于数据建模、业务建模、对象建模和组 件建模。 作为一种建模语言,UML并不涉及编程的问题, 即与语言平台无关,这就使开发人员可以专注于 建立软件系统的模型和结构。
需求说明书的编写提示
2 任务概述 2.1 目标 叙述该项软件开发的意图、应用目标、作用范围以及 其他应向读者说明的有关该软件开发的背景材料。如果所 定义的产品是一个更大的系统的一个组成部分,可使用一 张方框图来说明该系统的组成和本产品同其他各部分的联 系和接口。| 2.2 用户的特点 列出本软件的最终用户的特点,充分说明操作人员、 维护人员的教育水平和技术专长,以及本软件的预期使用 频度。这些是软件设计工作的重要约束 。 2.3 假定和约束
需求分析的目的与意义
在进行需求分析的过程中,首先要明确需求分析 应该是一个迭代的过程。 由于市场环境的易变性以及用户本身对于需求描 述的模糊性,需求往往很难做到一步到位。 需求分析不仅仅是属于软件开发生命周期早期的 一项工作,而且还应该贯穿于整个生命周期中, 它应该随着项目的深入而不断地变化。
需求分析的步骤
UML简介
UML 2.0支持13种图,有6种结构图和7种行为图。
结构图 (静态模型图) 类图 组织结构图 组件图 部署图 对象图 包图
行为图 (动态模型图) 活动图 交互图 用例图 状态机图
顺序图
通信图
交互概况图
时序图
类图
类图使用类和对象描述系统的结构,展示了系统 中类的静态结构,即类与类之间的相互关系。 类之间有多种联系方式,如关联(相互连接)、 依赖(一个类依赖于或使用另一个类)、泛化 (一个类是另一个类的特殊情况)。 一个系统有多幅类图,一个类也可以出现在几幅 类图中。
面向对象需求分析方法
确定系统的类和对象后,分析类之间的关系 对象或类之间的关系
依赖关系
• “非结构化”的和短暂的关系,表明某个对象会影响另外一个对象的 行为或服务
关联关系
• “结构化”的关系,描述对象之间的连接。
聚合关系和组合关系
• 特殊的关联关系,它们强调整体和部分之间的从属性,组合是聚合的 一种形式,组合关系对应的整体和部分具有很强的归属关系和一致的 生存期。比如,计算机和显示器就属于聚合关系。
需求分析的步骤
1.获取需求,识别问题
开发人员从功能、性能、界面和运行环境等多个方面识别
目标系统要解决哪些问题,要满足哪些限制条件,这个过程 就是对需求的获取。 开发人员通过调查研究,要理解当前系统的工作模型和此 外,在需求的获取时,还要明确用户对系统的安全性、可移
植性和容错能力等其他要求。
需求分析的步骤
泛化关系
• 与类间的继承类似。
实现关系
• 针对类与接口的关系。
面向对象需求分析方法
明确了对象、类和类之间的层次关系之后,需要 进一步识别出对象之间的动态交互行为,即系统
响应外部事件或操作的工作过程。
一般采用顺序图将用例和分析的对象联系在一起, 描述用例的行为是如何在对象之间分布的。
面向对象需求分析方法
需求分析的步骤
需求涉及的方面
在功能方面 • 需求包括系统要做什么,相对于原系统目标系统需要进行哪些修改, 目标用户有哪些,以及不同用户需要通过系统完成何种操作等。
在性能方面
• 需求包括用户对于系统执行速度、响应时间、吞吐量和并发度等指标 的要求。 在运行环境方面 • 需求包括目标系统对于网络设置、硬件设备、温度和湿度等周围环境 的要求,以及对操作系统、数据库和浏览器等软件配置的要求。 在界面方面 • 需求涉及数据的输入/输出格式的限制及方式、数据的存储介质和显示 器的分辨率要求等问题。
第三章
需求分析
需求分析的目的与意义 需求分析的步骤
需求分析的目的与意义
需求分析是一个非常重要的过程,它完成的好坏 直接影响后续软件开发的质量。 一般情况下,用户并不熟悉计算机的相关知识, 而软件开发人员对相关的业务领域也不甚了解, 用户与开发人员之间对同一问题理解的差异和习
惯用语的不同往往会为需求分析带来很大的困难。
需求说明书的编写提示
3.4 数据管理能力要求 说明需要管理的文件和记录的个数、表和文件的大小 规模,要按可预见的增长对数据及其分量的存储要求作 出估算。 3.5 故障处理要求 列出可能的软件、硬件故障以及对各项性能而言所产 生的后果和对故障处理的要求。 3.6 其他专门要求 如用户单位对安全保密的要求,对使用方便的要求, 对可维护性、可补充性、易读性、可靠性、运行环境可 转换性的特殊要求等。
需求说明书的编写提示
4.3 接口 说明该软件同其他软件之间的接口、数据通信协议等。 4.4 控制 说明控制该软件的运行的方法和控制信号,并说明这些控 制信号的来源。
需求分析的步骤
4. 需求验证
需求验证是对需求分析的成果进行评估和验证的 过程。为了确保需求分析的现实性、一致性、完整 性和有效性,提高软件开发的效率,为后续的软件 开发做好准备,需求验证的工作非常必要。
需求分析的步骤
2. 分析需求,建立目标系统的逻辑模型
常用的模型图有数据流图、E-R图、用例图和状态转换图等,
不同的模型从不同的角度或不同的侧重点描述目标系统。绘 制模型图的过程,既是开发人员进行逻辑思考的过程,也是 开发人员更进一步认识目标系统的过程。
需求分析的步骤
3. 将需求文档化
获得需求后要将其描述出来,即将需求文档化。对于大型的
面向对象需求分析方法
首先要找到系统的使用者,即用例的操作者。操 作者是在系统之外,透过系统边界与系统进行有 意义交互的任何事物。 “在系统之外”是指操作者本身并不是系统的组 成部分,而是与系统进行交互的外界事物。这种 交互应该是“有意义”的交互,即操作者向系统 发出请求后,系统要给出相应的回应。 而且,操作者并不限于人,也可以是时间、温度 和其他系统等。
术语言。
面向对象需求分析方法
下图所示为某图书馆信息管理系统的用例图。
面向对象需求分析方法
确定了系统的所有用例之后,就可以开始识别目 标系统中的对象和类了。
把具有相似属性和操作的对象定义为一个类。
属性定义对象的静态特征,一个对象往往包含很 多属性。
面向对象需求分析方法
比如,读者的属性可能有姓名、年龄、年级、性 别、学号、身份证号、籍贯、民族和血型等。目 标系统不可能关注对象的所有属性,而只是考虑 与业务相关的属性。 比如,在“图书馆信息管理”系统中,可能就不 会考虑读者的民族和血型等属性。操作定义了对 象的行为,并以某种方式修改对象的属性值。
最后,需要将需求分析的结果用多种模型图表示出来,并 对其进行评审。由于分析的过程是一个循序渐进的过程, 合理的分析模型需要多次迭代才能得到。 面向对象需求分析的示意图如图所示。
UML简介
类图和对象图
用例图 顺序图
交互概况图
时序图 组件图
状态图
活动图 通信图
部署图
面向对象需求分析方法
比如,目标系统需要每隔一段时间就进行一次系统更新,
那么时间就是操作者。
可以把操作者执行的每一个系统功能都看作一个用例。可
以说,用例描述了系统的功能,涉及系统为了实现一个功
能目标而关联的操作者、对象和行为。 识别用例时,要注意用例是由系统执行的,并且用例的结 果是操作者可以观测到的。用例是站在用户的角度对系统 进行的描述,所以描述用例要尽量使用业务语言而不是技
软件系统,需求阶段一般会输出三个文档:
系统定义文档 • 用户需求报告 系统需求文档 • 系统需求规格说明书
软件需求文档
• 软件需求规格说明书
需求分析的步骤
对于简单的软件系统而言,需求阶段只需要输出
软件需求文档就可以了。
软件需求规格说明书主要描述软件的需求,从开
发人员的角度对目标系统的业务模型、功能模型
因此,开发人员和用户之间充分和有效的沟通在
需求分析的过程中至关重要。
需求分析的目的与意义
有效的需求分析通常都具有一定的难度,一方面是因为交 流存在障碍,另一方面是因为用户通常对需求的陈述不完 备、不准确和不全面,并且还可能不断地变化。
开发人员不仅需要在用户的帮助下抽象现有的需求,还
需要挖掘隐藏的需求。 此外,把各项需求抽象为目标系统的高层逻辑模型对日后 的开发工作也至关重要。 合理的高层逻辑模型是系统设计的前提。
6
某出版社系统调查表
编号 7 8 9 10 11
提出问题 您的部门需要成本核算和统计的内容有哪些? 您的部门采用计算机管理工作情况如何? 如何改进业务流程使之更合理? 哪些问题是目前传统手工方法根本无法解决的? 出版社计算机管理信息系统需要解决什么问题?
相关主题