Download presentation
Presentation is loading. Please wait.
1
《软件工程》 软件的定义—需求分析 马丽
2
2.2 项目需求分析 当项目计划完成之后,软件项目就进入了下一个重要的阶段即软件需求分析阶段。它的基本任务是准确地回答“系统必须做什么?”这个问题。 Why to do? —可行性研究√ What to do?—需求分析√ How to do? —系统设计
3
需求分析的概念 需求分析的任务并不是确定系统怎样完成它的工作,而仅仅是确定系统必须完成哪些工作,也就是对目标系统提出完整、准确、清晰、具体的要求。 需求分析是指开发人员要准确地理解用户的要求,进行细致的调查分析,将用户非形式化的需求陈述转化为完整的需求定义,再由需求定义转化为相应的软件需求规格说明书(即需求分析的结果)的过程。 需求规格说明书的主要部分是详细的数据流图,数据字典和主要功能的算法描述。通过验收的需求规格说明书是今后软件设计和项目验收的依据。
4
需求分析的过程 需求分析对于整个软件开发过程以及软件产品的质量至关重要。
从收集资料到形成软件需求分析文档,一般来说要经过四个过程:获取用户需求,分析用户需求,编写需求文档,评审需求文档。
5
需求分析的任务 需求分析的任务是确定系统必须完成哪些工作,也就是对目标系统提出完整、准确、清晰、具体的定义和要求。
本阶段要进行的具体工作如下:
6
1.进行调查研究,获取用户需求(问题识别)。 这些需求包括:
功能需求:所开发的软件必需具备什么功能(最重要)。 性能需求:指待开发的软件应具备的性能指标,如存储容量,运行时间等。 环境需求:指软件运行时的软件、硬件要求。 用户界面需求:指人机交互方式、输入输出的数据格式等是否友好、便捷等。 此外还有:可靠性需求、安全保密要求、用户界面需求、可移值性、可维护性等方面需求。 调查时可采用以下几种方式:
7
⑤ 分析已经存在的同类软件产品,提取需求。 ⑥ 从行业标准、规则中提取需求。 ⑦ 从Internet上搜索相关资料。
① 与用户交谈,向用户提出问题。 ② 参观用户的工作流程,观察用户的操作。 ③ 向用户群体发放调查问卷表。 ④ 与同行、专家交谈,听取他们的意见。 ⑤ 分析已经存在的同类软件产品,提取需求。 ⑥ 从行业标准、规则中提取需求。 ⑦ 从Internet上搜索相关资料。 分析员协同程序员通过调查分析,同时可以参考该项目的可行性报告和项目开发计划书,来获取当前系统的物理模型,可以采用系统流程图(是用来描述系统物理模型的一种传统工具)表示。 例如:计算机售书的系统流程图如下页所示。
8
计算机售书的系统流程图如下所示
9
附:
11
2.去除非本质因素,抽象出当前系统的逻辑模型。
从当前系统的物理模型中去掉非本质因素,如地点、人物等,抽象出当前系统的逻辑模型,可以用数据流图表示。 3. 编写文档 (1)编写“软件需求规格说明书”: 目标系统的逻辑模型是通过软件需求规格说明书来描述的,该说明书是软件生命周期中一份极为重要的文档,它是对需求分析最终结果的描述,书写应当直观、清晰,易于理解和无二义性。 (2)编写“初步用户使用手册”:主要反映软件的用户功能界面和用户使用的具体要求。能强制分析人员从用户使用的观点考虑软件。 (3)编写确认测试计划:做为今后确认和验收的依据。 (4)修改完善软件开发计划:指修改、完善并确定软件开发实施计划。
12
4.需求分析复查。 用户在分析员的介绍下,对需求分析结果进行仔细的复查。数据流图和数据字典是帮助复查的极好工具。 5.需求分析评审和验收。 对整个软件需求分析进行正式评审和验收,是软件需求分析的最后一个环节。评审通过是软件需求分析任务完成的标志。 参加评审的人员有用户、管理部门以及软件设计、编码和测试人员。衡量需求分析是否正确,一般来讲,应从它的正确性、一致性、现实性、有效性等方面来进行验收。
14
需求分析流程
15
常用的需求分析的方法 面向数据流的结构化分析方法 (SA) 面向数据结构的Jackson方法 (JSD)
面向数据结构的结构化数据系统开发方法 (DSSD) 面向对象的分析方法 (OOA) 等
16
2.3 数据流分析技术 面向数据流进行需求分析的方法 结构化分析方法适合于数据处理类型软件的需求分析
2.3 数据流分析技术 面向数据流进行需求分析的方法 结构化分析方法适合于数据处理类型软件的需求分析 具体来说,结构化分析方法就是用抽象模型的概念,按照软件内部数据传递、变换的关系,自顶向下逐层分解,直到找到满足功能要求的所有可实现的软件为止 数据流图(Data Flow Diagram,简称DFD)描绘系统的逻辑模型,是结构化系统分析的主要工具。数据流图(DFD)是描述软件系统中数据处理过程的一种有力的图形工具。
17
数据流图中的主要图形元素 数据加工 (数据变换) 数据源点或终点 (外部实体) 数据流 数据存储
18
数据流图中的基本符号(最新) 或 符 号 含 义 数据的源点或终点 数据流 数据存储 加工(变换)
19
画数据流图步骤 1、首先画系统的输入输出,即先画顶层数据流图。顶层流图只包含一个加工,用以表示被开发的系统,然后考虑该系统有哪些输入数据,这些输入数据从哪里来;有哪些输出数据,输出到哪里去。 2、画系统内部,即画下层数据流图。一般将层号从0开始编号,采用自顶向下,由外向内的原则。
20
注意事项 1、命名。不论数据流、数据存储还是加工,合适的命名使人们易于理解其含义。
2、一般不画物质流。数据流反映能用计算机处理的数据,并不是实物,因此对目标系统的数据流图一般不要画物质流 3、父图与子图的平衡。子图的输入输出数据流同父图相应加工的输入输出数据必须一致,此即父图与子图的平衡。
21
3、局部数据存储。当某层数据流图中的数据存储不是由图中相应加工的外部接口,而只是本图中某些加工之间的数据接口,则称这些数据存储为局部数据存储。
4、提高数据流图的易理解性。注意合理分解,要把一个加工分解成几个功能相对独立的子加工,这样可以减少加工之间输入、输出数据流的数目,增加数据流图的可理解性。
22
描述银行取款过程的数据流图
23
数据流图的层次结构 为了表达数据处理过程的数据加工情况,需要采用层次结构的数据流图。按照系统的层次结构进行逐步分解,并以分层的数据流图反映这种结构关系,能清楚地表达和容易理解整个系统
24
分层的数据流图
25
在多层数据流图中,顶层流图仅包含一个加工,它代表被开发系统。它的输入流是该系统的输入数据,输出流是系统所输出数据
底层流图是指其加工不需再做分解的数据流图,它处在最底层 中间层流图则表示对其上层父图的细化。它的每一加工可能继续细化,形成子图。
26
结构化分析方法步骤示例 商店业务处理系统
27
这个数据流图只是一个高层的系统逻辑模型,它反映了目标系统要实现的功能
数据流图绘制步骤 首先确定系统的输入和输出 根据商店业务,画出顶层数据流图,以反映最主要业务处理流程
28
经过分析,商店业务处理的主要功能应当有销售、采购、会计三大项。主要数据流输入的源点和输出终点是顾客和供应商。
然后从输入端开始,根据商店业务工作流程,画出数据流流经的各加工框,逐步画到输出端,得到第一层数据流图
29
第一层数据流图
30
加细每一个加工框 销售细化
31
采购细化
32
检查和修改数据流图的原则 数据流图上所有图形符号只限于前述四种基本图形元素 数据流图的主图必须包括前述四种基本元素,缺一不可
数据流图的主图上的数据流必须封闭在外部实体之间 每个加工至少有一个输入数据流和一个输出数据流
33
在数据流图中,需按层给加工框编号。编号表明该加工所处层次及上下层的亲子关系
规定任何一个数据流子图必须与它上一层的一个加工对应,两者的输入数据流和输出数据流必须一致。此即父图与子图的平衡 可以在数据流图中加入物质流,帮助用户理解数据流图
34
图上每个元素都必须有名字 数据流图中不可夹带控制流 初画时可以忽略琐碎的细节,以集中精力于主要数据流
35
数据词典 数据字典(Data Dictionary)是关于数据的信息的集合,通过数据字典对数据流程图中的各个元素作精确的定义与说明。它是数据流图的补充工具。 数据词典与数据流图配合,能清楚地表达数据处理的要求。二者构成需求规格说明书的主要部分。 词条描述 —— 对于在数据流图中每一个被命名的图形元素,均加以定义,其内容有: 名字,别名或编号,分类,描述,定义,位置,其它等。
36
数据字典的内容及格式 数据字典是为分析人员和用户查找数据流图中有关名字的详细定义而服务的,因此也像其他任何字典一样,要把所有条目按一定次序排列起来,以便查阅。 数据字典有以下四类条目:数据流、数据项、数据存储、基本加工。其中,数据项是组成数据流和数据存储的最小元素。 1)数据流条目给出了DFD中数据流的定义,主要部分是列出该数据流的各组成数据项。在定义数据流及数据存储组成时,通常要用到表2.4给出的符号。
38
2)数据存储条目是对数据文件内容的定义,主要内容举例如下:
数据存储名称:学生成绩库 别名:无 组成:学生学号+课程编码+成绩+备注 组织方式:以学号为记录关键字升序排列。
39
3)数据项条目给出某个数据单项的定义,内容通常为数据项的值类型、允许取值范围等,其定义结构与数据流条目类似。
4)加工条目是用来说明DFD中基本加工的处理逻辑,对其他非基本加工则不必进行加工说明。加工条目主要由输入数据、加工逻辑和输出数据等部分组成,加工逻辑描述把输入数据转换为输出数据的过程,是加工条目的主体。 为了使加工逻辑直观易读,有几种常用的描述方法,它们是结构化语言、判定表和判定树。加工条目内容举例如下: 加工名称:查阅库存 编 号:1.2 输 入:合格订单 输 出:供货订单或缺货订单
40
加工逻辑:根据库存记录 IF 订单项目数量<该项目库存量的临界值 THEN 可供货处理 ELSE 此订单缺货,登记,待进货后再处理 ENDIF (3)数据字典的实现 数据字典的建立可以用手工和自动两种方式实现。手工方式是指把每一个字典条目写在卡片上,由专人管理和维护。自动方式是借助数据字典处理程序,把字典条目输入到计算机中,用计算机对它进行检索和维护。
41
需求规格说明书编写规范 需求规格说明书是在对用户需求分析的基础上,把用户的需求规范化、形式化而编写成的,其目的是为软件开发提出总体要求,作为用户和开发人员之间相互了解和共同开发的基础。它的主要内容包括: (1)概述。软件要求的简要说明。 (2)界面描述。描述软件系统与其他部分(硬件、软件、人员等)的功能联系。 (3)数据流分析。一套完整的分层数据流图和一本完整的数据字典。 (4)质量评审要求。 (5)其他。 本章以实际项目“××社区卫生综合管理系统”的需求分析为综合实例,给出了软件需求规格说明书的编写规范,内容请参看附录三。
42
数据及数据库需求 在数据词典中,强调对数据存储结构的逻辑设计,并用数据结构表达数据项之间的逻辑关系。
但任何一个软件系统都可能有成千上万个数据项,仅仅描述这些数据项是不够的,更重要的是如何把它们以最优的方式组织起来,以满足系统对数据的要求。
43
有关数据库的基本概念 在软件系统中需要处理的数据是现实世界中存在的事物及其联系的反映。 人们通常将与数据处理有关的的领域分为三个世界:
信息世界 数据世界
44
现实世界是存在于人们头脑之外的客观世界,现实世界中的事物可分成对象和性质两大类。
对象可以是人、是物,还可以是实际的东西或概念的东西,例如,大学、城市等。对象还可以指事物与事物间的联系。 性质则是指事物的性质或特征。
45
( 951149, 袁秋慧, 女, 19, 软件) 信息世界也叫做观念世界,是现实世界在人们头脑中的反映。
客观世界中的事物在信息世界中叫做实体,反映事物之间联系的叫做实体模型。 实体是由若干属性的属性值组成。属性是实体某一方面的特征,相应于事物的性质。例如,一个学生实体是如下的一个5元组: ( , 袁秋慧, 女, 19, 软件)
46
(学号, 姓名, 性别, 年龄, 专业) 5元组中每一元素是学生的某一属性的属性值。他们对应的属性集合是:
这些属性集合表征了“学生”实体的类型,叫做实体型。同一类型的实体的集合叫做实体集。 数据世界则是信息世界中信息的数据化,现实世界中的事物及其联系在数据世界中用数据模型描述。 (学号, 姓名, 性别, 年龄, 专业)
47
描述每一实体的数据称为记录,描述属性的数据叫做数据项或字段。
与实体集相对应的称为文件。 例如,学生文件就由多个记录组成,这些记录放在一起构成一个二维表。表中每一横排叫做一个记录或元组,每一纵列叫做一个属性。
49
记录由数据项组成,正如实体由若干属性的属性值组成一样。
一般数据项沿用属性名。用做属性名时表示观念信息,用做数据项名时表示数据信息。每个数据项包括两个特征:即数据类型和数据长度。 若干同类型的记录构成文件。 为了对文件中的记录有效组织和存取,通常指定一个数据项进行区别,这个数据项叫做关键字。
50
E-R方法 ( Entity-Relationship Approach) 和实体模型
实体模型是现实世界的纯表示,它不涉及数据世界的数据结构、存取路径、存取效率等问题。因此,它可以转换成数据库中的数据模型。
51
数据可以按相应数据模型进行组织。 E-R图中表示实体联系的符号如下:
52
在E-R图中,每个方框表示实体型或属性,方框之间的连线表示实体之间,或实体与属性之间的联系。出现在连线上的短竖线可以看成是“1”,而圆圈隐含表示“0”。
例如,在教学管理中,一个教师可以教授零门、一门或多门课程,每位学生也需要学习几门课程。因此,教学管理中涉及的对象(实体型)有学生、教师和课程。
53
用E-R图描述它们之间的联系,得下图。其中,学生与课程是多对多的联系,而教师与课程的联系是一对多。
54
进一步,要确定属性。例如, 学生具有学号、姓名、性别、年龄、专业(其它略)等属性; 课程具有课程号、课程名、学分、学时数等属性; 教师具有职工号、姓名、年龄、职称等属性。 此外,学生通过学号、分数与课程发生联系。如此可得教学实体模型。
55
教学实体模型
56
实体模型中的基本符号(老式) 符号 含 义 表示实体 表示实体间的联系,与实体间的连线上需用数字标明具体的对应关系 表示与实体有关的属性
含 义 表示实体 表示实体间的联系,与实体间的连线上需用数字标明具体的对应关系 表示与实体有关的属性 用于实体、属性及联系的连接
57
图2.4 例如:学生和课程之间的E-R模型 学生和课程之间的多对多联系E-R模型; (b) 将多对多联系转换为一对多联系E-R模型
58
数据库分析的过程 在需求分析阶段进行数据库分析的流程
59
上机一:用Visio软件画书上的DFD。
小结 :1、 掌握需求分析的任务及过程,掌握进行需求分析时要使用的几种工具(系统流程图、数据流图和数据字典,E-R图)。 2、了解软件需求规格说明书的书写规范 。 作业:P32 1~3 上机一:用Visio软件画书上的DFD。
Similar presentations