结构化分析之需求分析
结构化需求分析
x
1
3
2
1.1
1.2
1.3
2.1 2.3
2.2
1.1 1.3
4.1.2 数据流图的画图步骤
(1)把系统看成一个整体 (2)明确输入输出 (3)系统为实现功能,内部必然有信息处理、传递、存储 (4)画出内部信息处理的分层DFD (5)检查分层DFD中的每一个内部处理可否进一步细分,若均
很具体,则结束绘制;否则把将每一个抽象的内部信息处理 再看成一个整体,再重复(2)——(4)的工作,进行剖析, 如此一级级解剖,直到所用处理步骤都很具体为止。
计算
订货单
应收款
编制 财务 报表
经理
数据流图多个数据流组合的图例
A C
*T
B
B
AT+
C
B A
T*
C
A C
+T
B
A C+TB NhomakorabeaB
A T
+
C
* 与 +或
+ 互斥
多个数据流之间的关系
数据流图的分层
➢ 出现十几个甚至几十 个加工的数据流图不 直观,不易理解
➢ 按照系统的层次结构 进行逐步分解,并以 分层的数据流图反映 这种结构关系,能清 楚地表达和容易理解 整个系统。
第四章 结构化软件需求分析
本章主要内容
4.1 结构化需求分析的功能模型——数据流图(DFD) 4.2 结构化需求分析的功能模型——数据字典 4.3 结构化需求分析的功能模型——加工逻辑说明(小
说明) 4.4 结构化需求分析的数据模型——实体关系图(ER图) 4.5 结构化需求分析的行为模型——状态转换图 4.6 需求分析阶段性成果——需求规格说明书
软件工程案例_结构化方法的需求分析
案例—结构化方法的需求分析一、约定1.假定校园卡只对学生发行。
2.校园卡本身不保存除“卡号”以外的信息,卡号由系统按照序列号自动生成。
3.假定使用校园卡的场合只有食堂、商店及图书馆,而且,不允许透支消费。
4.系统功能从简,包括:不考虑校园卡的加密问题,不考虑诸如修改密码、挂失等配套功能,与特约商户按照POS机号逐日汇总后对帐,等等。
二、软件功能1.校园卡发行2.帐户管理2.1、充值2.2、取款2.3、注销2.4、查询帐户收支记录3.刷卡消费4.身份验证5.统计报表5.1、打印收支情况统计表5.2、打印特约商户对帐表三、数据流图1.顶层(图1)学习提示:▲顶层数据流图的基本意图是什么?2.第1层(图2)学习提示:▲自顶向下、逐层细化原则的运用▲下层数据流图的边界与上层数据流图保持一致▲关于数据存储▲关于数据字典3.第2层(图3、图4)学习提示:▲对数据流图的细化到什么程度为止。
四、数据字典1.数据流与数据存储的数据结构学习提示:▲规范描述每种数据流、每种数据存储的数据元素构成。
▲用词的规范,语法与语义的一致,同一数据结构(或数据元素)使用同一名称、不同数据结构(或元素)使用不同的名称。
2.数据元素对上述数据结构中出现每个数据项,逐个作出定义。
本案例省略具体内容,只对如下数据元素作出说明。
学习提示:▲哪些内容属于“数据元素”。
▲对于数据元素,需要定义哪些内容。
▲关于“元数据”的概念▲数据分析要求清楚描述每种业务单据之间的关联每个数据元素值的“来龙去脉”五、功能说明以“功能2.2—取款”为例说明▲功能简介(略)▲录入数据:取款单▲界面原型(略)▲前置条件《校园卡基本档案》存在与《取款单》中“卡号”相对应的记录。
▲对录入数据的约束规则●该档案记录的“密码”与《取款单》输入值一致。
●该档案记录的“当前状态”为“正常”。
●该档案记录的“帐户余额”值大于或者等于《取款单》的“取款金额”。
▲系统处理●新增《存取款记录》。
结构化需求分析
完整性和一致性,我们应努力追求高度形式 化的表示法。
7.可修改性
如果一个SRS的结构和风格在需求有必要改变时是 易于实现的、完整性的、一致的,那么这个SRS就 是可以修改的。可修改性要求SRS具备以下条件:
a. 具有一个有条不紊的易于使用的内容组织,具有目录表, 索引和明确的交叉引用表; b. 没有冗余。即同一需求不能在SRS中出现多次。
1.正确性
正确性指的是SRS中陈述的每个需求都表达
了将要构造的系统的某种要求。 目前尚不存在有效的技术来保证这个质量, 因为它完全依赖于当前的应用系统。 例如,如果软件必须在5秒钟内对所有的按键 事件作出相应,而SRS中陈述“软件应在10 秒钟内对所有的按键事件作出响应”,则该 需求描述是不正确的。
3.完整性
如果一个SRS能满足下列要求, 则该SRS就是完整的: (1)期待未来系统所做的任何 事情都包括在SRS的陈述中。
如果一个SRS既是完整的又是正
SRS规约完整 则为空
确的,那么区域A和C同时为空, 两个原是重合的。 完整性是所有属性中最难以保证 的,原因是不完整意味着有些东 西不在SRS中,这样检查材料很 难发现其中不存在的东西 诊断不完整性的一个有效技术就 是开发原型。
例如: “产品应有易于使用的用户界面”
使用不可度量的量
结构化分析方法
结构化分析方法结构化分析方法一、需求分析与需求分析方法需求阶段是软件开发的关键阶段。
需求分析的任务:准确地定义未来系统的目标,确定为了满足用户的需求系统必须做什么;用《需求规格说明书》规范的形式准确地表达用户的需求。
需求分析阶段的工作(四方面):◆需求获取:确定系统各方面需求;全面地提炼出系统的功能性与非功能性需求。
◆需求分析:对获取的需求分析和综合,给出系统解决方案和逻辑模型。
◆编写需求规格说明书:为用户、设计人员的交流提供方便,还可作为控制软件开发进程的依据。
◆需求审评:复审需求分析阶段的工作,验证需求文档的一致性、可行性等。
1、需求获取的目的清楚地理解所要解决的问题、完整地获取用户需求。
2、需求获取的内容用户需求分类:(1)功能性需求定义了系统做什么(描述系统必须支持的功能和过程)。
(2)非功能性需求(技术需求)定义了系统工作时的特性(描述操作环境和性能目标)。
3、需求分析的步骤4、需求分析过程示意(1)通过对现实环境的调查,获得当前系统的物理模型。
(2)去掉具体模型中的非本质因素,抽象出当前系统的逻辑模型。
(3)分析当前系统与目标系统的差别,建立目标系统的逻辑模型。
5、需求分析的方法结构化分析(传统建模方法)、面向对象分析。
二、结构化分析方法1、结构化分析方法(Structure Analysis---SA)(1)定义是面向数据流进行需求分析的方法,采用自顶向下,逐层分解,建立系统的处理流程,以数据流图和数据字典为主要工具,建立系统的逻辑模型。
(2)结构化分析的主要步骤通过对用户的调查,以软件的需求为线索,获取当前系统的具体模型;去掉具体模型中非本质因素,抽象出当前系统的逻辑模型;根据计算机的特点分析当前系统与目标系统的差别,建立目标系统的逻辑模型;完善目标系统并补充细节,写出目标系统的软件需求规格说明。
2、结构化分析方法使用的常用工具(1)数据流图(DFD—Data Flow Diagram )①作用从数据传递和加工的角度,在需求分析阶段以图形的方式描述数据流从输入到输出的移动变换过程,为系统建立逻辑模型。
系统分析师 结构化需求分析 范文
系统分析师结构化需求分析范文下载提示:该文档是本店铺精心编制而成的,希望大家下载后,能够帮助大家解决实际问题。
文档下载后可定制修改,请根据实际需要进行调整和使用,谢谢!而且本店铺为大家提供各种类型的实用资料,如教育随笔、日记赏析、句子摘抄、古诗大全、经典美文、话题作文、工作总结、词语解析、文案摘录、其他资料等等,想了解不同资料格式和写法,敬请关注!Download tips: This document is carefully compiled by this editor. I hope that after you download it, it can help you solve practical problems. The document can be customized and modified after downloading, please adjust and use it according to actual needs, thank you!In addition, this shop provides you with various types of practical materials, such as educational essays, diary appreciation, sentence excerpts, ancient poems, classic articles, topic composition, work summary, word parsing, copy excerpts, other materials and so on, want to know different data formats and writing methods, please pay attention!系统分析师:结构化需求分析范文。
引言在当今信息时代,系统分析师扮演着至关重要的角色,他们负责确保软件开发项目的顺利进行。
结构化需求分析方法
结构化分析(SA)方法结构化开发方法(Structured Developing Method)是现有的软件开发方法中最成熟,应用最广泛的方法,主要特点是快速、自然和方便。
结构化开发方法由结构化分析方法(SA法)、结构化设计方法(SD 法)及结构化程序设计方法(SP 法)构成的。
结构化分析(Structured Analysis,简称SA 法)方法是面向数据流的需求分析方法,是70 年代末由Yourdon,Constaintine 及DeMarco 等人提出和发展,并得到广泛的应用。
它适合于分析大型的数据处理系统,特别是企事业管理系统。
SA 法也是一种建模的活动,主要是根据软件内部的数据传递、变换关系,自顶向下逐层分解,描绘出满足功能要求的软件模型。
1 SA 法概述1.SA 法的基本思想结构化分析(Structured Analysis,简称SA 法)是面向数据流的需求分析方法,是70年代由Yourdon,Constaintine 及DeMarco 等人提出和发展,并得到广泛的应用。
结构化分析方法的基本思想是“分解”和“抽象”.分解:是指对于一个复杂的系统,为了将复杂性降低到可以掌握的程度,可以把大问题分解成若干小问题,然后分别解决.图4 是自顶向下逐层分解的示意图.顶层抽象地描述了整个系统,底层具体地画出了系统的每一个细节,而中间层是从抽象到具体的逐层过渡。
抽象:分解可以分层进行,即先考虑问题最本质的属性,暂把细节略去,以后再逐层添加细节,直至涉及到最详细的内容,这种用最本质的属性表示一个自系统的方法就是“抽象”。
2。
SA 法的步骤⑴建立当前系统的“具体模型”;系统的“具体模型”就是现实环境的忠实写照,即将当前系统用DFD 图描述出来.这样的表达与当前系统完全对应,因此用户容易理解。
⑵抽象出当前系统的逻辑模型;分析系统的“具体模型”,抽象出其本质的因素,排除次要因素,获得用DFD 图描述的当前系统的“逻辑模型”。
3.3 结构化需求分析方法
订货单 支票
顾客
询问 退货单
处理顾 客事务
第三章 需求分析
15
多个数据流的第一种表示方法:
订货单 顾客事务
顾客
处理 顾客 事务
支票 询问
退货单
16
第三章 需求分析
多个数据流的第二种表示方法:
订货单
编辑订 货单
开收据 处理询 问 退货分 析处理
支票
顾客
询问
退货单
第三章 需求分析
17
多个数据流的表示举例
重建父图,即把第二步所得的每一部分画成一个圆圈, 各部分之间的联系就是加工之间的界面; 重建各张子图,只需把第二步所得的图,按各自的边界 剪开即可; 为所有加工重新命名、编号。
第三章 需求分析
36
结构不合理的数据流图及其修改
4 H A B 1 I 2 K L D 3 D (a)结构不合理的 数据流程图
33
分解的程度
分解应自然,概念上要合理、清晰。 上层可分解的快些,而下层应分解得慢些。
在不影响可读性的前提下,应适当地多分解成几部分, 以减少分解层数。
一般说来,当加工可用一页纸明确地表述时,或加工只 有单一输入/输出数据流时,就应停止对该加工的分解。 对数据流图中不再作分解的加工,必须作出详细的加工 说明,并且每个加工说明的编号必须与功能单元的编号 一致。
第三章 需求分析
5
结构化分析方法的特点
利用数据流图来帮助人们理解问
题,对问题进行分析。即利用图
形工具来模拟数据处理过程。
第三章 需求分析
6
结构化分析方法
用数据字典定义数据流图中的各项数据; 结构化英语、判定树和判定表对数据流图中的基本功 能进行描述。 通过将系统分解成多层处理后,在较低层次上,可以 看到数据流图的高层次加工的细节和相关的数据流。 结构化分析方法的实质就是采用一组分层的数据流图 及相应的数据字典作为系统的模型。 结构化分析方法从总体上看是一种强烈依赖数据流的 自顶向下的建模方法,它不仅是需求分析技术,也是 完成规格说明的手段。
结构化需求分析方法
结构化分析(SA)方法结构化开发方法(Structured Developing Method)就是现有的软件开发方法中最成熟,应用最广泛的方法,主要特点就是快速、自然与方便。
结构化开发方法由结构化分析方法(SA法)、结构化设计方法(SD 法)及结构化程序设计方法(SP 法)构成的。
结构化分析(Structured Analysis,简称SA 法)方法就是面向数据流的需求分析方法,就是70 年代末由Yourdon,Constaintine 及DeMarco 等人提出与发展,并得到广泛的应用。
它适合于分析大型的数据处理系统,特别就是企事业管理系统。
SA 法也就是一种建模的活动,主要就是根据软件内部的数据传递、变换关系,自顶向下逐层分解,描绘出满足功能要求的软件模型。
1 SA 法概述1、SA 法的基本思想结构化分析(Structured Analysis,简称SA 法)就是面向数据流的需求分析方法,就是70年代由Yourdon,Constaintine 及DeMarco 等人提出与发展,并得到广泛的应用。
结构化分析方法的基本思想就是“分解”与“抽象”。
分解:就是指对于一个复杂的系统,为了将复杂性降低到可以掌握的程度,可以把大问题分解成若干小问题,然后分别解决。
图4 就是自顶向下逐层分解的示意图。
顶层抽象地描述了整个系统,底层具体地画出了系统的每一个细节,而中间层就是从抽象到具体的逐层过渡。
抽象:分解可以分层进行,即先考虑问题最本质的属性,暂把细节略去,以后再逐层添加细节,直至涉及到最详细的内容,这种用最本质的属性表示一个自系统的方法就就是“抽象”。
2、SA 法的步骤⑴建立当前系统的“具体模型”;系统的“具体模型”就就是现实环境的忠实写照,即将当前系统用DFD 图描述出来。
这样的表达与当前系统完全对应,因此用户容易理解。
⑵抽象出当前系统的逻辑模型;分析系统的“具体模型”,抽象出其本质的因素,排除次要因素,获得用DFD 图描述的当前系统的“逻辑模型”。
结构化分需求分析
结构化分需求分析结构化简单说,就是把一个问题拆解成一个个能解决的部分;拿需求分析举例,当下面的需求该做的时候:比如有一个业务部门提了一个数据需求,提取某个数据指标,按照需求的框架来说:一个需求包含背景、场景、解决的问题,比如需求的背景是有个客户需要查看这个数据,需求的场景这里分为了两个部分,一个部分是业务同学的场景是客户提出要数据的时候,另一个部分是客户什么时候有要数据需求,举个例子,比如客户每个月月底做周报的时候需要用到这个数据,需求解决的问题也分为两个部分,一部分是业务同学满足客户的需求,另一部分客户满足了自身的汇报需求;当从背景、场景、解决的问题这三个方向寻找答案的时候,会得出很多的解决方案:从背景的角度上分析:能否让这个需求的背景不成立,直接把数据指标面向客户;从场景的角度上分析:把不舒服的场景转换为舒服的场景,业务角度上的场景是客户要数据,能否转换为定时给客户发送数据指标;客户角度上的场景是写周报的时候要用到,能否转换为把这个指标变为客户时刻关注的指标;从解决的问题角度上分析:如果问题可以消除,最好是消除,如采用把数据指标面向客户,那么业务侧的这个问题也就不存在了;如果问题无法消除,则应减少解决问题的步骤,简化流程,客户提供数据的这一页如果数据指标固定,可否改为一键下载报表去替代手工填写;总结解决方案:(1)把数据指标做成功能,直接面向客户;(2)定时发送数据指标给到客户;(3)研发周报或报表功能;(4)人工数据库拉数据,业务侧发送;初步方案总结好后,接下来就是方案的可行性判断:基于上述的需求和方案,可行性判断主要在于两方面,一方面是价值,一方面是成本;从价值角度来说有三个方面:(1)需求本身:需求刚需程度(高、中、低)、用户使用频次(高、中、低);(2)方案本身:服务模式(重、中、轻)、是否可规模化(难、中、易);(3)价值本身:付费意愿(难、中、易)、付费价格(高、中、低);从成本角度来说有两个方面:(1)研发成本:研发成本(高、中、低)、维护成本(高、中、低);(2)业务成本:人力成本(高、中、低);把总结出的五个方案代入可行性判断的五个方面中,就可以得出最优方案,如果感觉上述的可行性判断过于定性,也可以采用定量的方式,如为需求、方案、价值、研发、业务基于团队或公司的诉求给予不同的权重,如需求(0.3)、方案(0.1)、价值(0.3)、研发成本(0.2)、业务成本(0.1),在为每个方面下属的要素赋予分数,如需求刚需程度中的高赋予5分、中赋予3、低赋予1分、研发成本中的高赋予1分、中赋予3分、低赋予5分,再通过权重乘以数值就会得出一个分数,分数越高价值越大。
软件工程第四章结构化需求分析
数据字典
定义
数据字典是一种用于描述数据元 素及其属性的工具,它提供了数 据的详细描述和定义。
பைடு நூலகம்
内容
包括数据元素的名称、别名、类 型、长度、取值范围、默认值等 属性信息。
作用
为开发人员提供了一个统一的数 据定义和描述标准,避免了数据 不一致和歧义的问题。
03 结构化需求分析过程
问题识别
01
确定软件系统的范 围和目标
用例表
列出系统的所有用例,包括用例名称、描述、前置条件和后置条件 等。
用户故事表
以用户为中心描述系统需求,包括用户角色、场景、任务和目标等。
原型工具
低保真原型
使用简单的工具和方法创建的原型,主要用于 概念验证和用户反馈收集。
高保真原型
使用高级工具和方法创建的原型,几乎与实际 产品一样,用于详细需求分析和用户测试。
04 结构化需求分析工具
图形工具
流程图
用于描述系统或程序的逻辑流程,包括开始、结束、决策点和活动 等元素。
数据流图
用于描述数据在系统中的流动和处理过程,包括数据源、数据存储、 数据处理和数据终点等元素。
实体关系图
用于描述系统中实体之间的关系,包括实体、关系和属性等元素。
表格工具
需求规格说明书
详细列出系统需求,包括功能需求、性能需求、安全需求和接口 需求等。
步骤
首先确定系统的主要功能,然后逐层向下分解,直 到每个功能都清晰、具体、可实现。
优点
能够全面地了解系统的功能需求,有助于保 证系统的完整性。
数据流图
定义
数据流图是一种图形化表示方法,用于描述系统中数 据的流动和处理过程。
组成
包括数据流、数据存储、数据处理和外部实体等基本 元素。
结构化需求分析报告方法
结构化分析(SA)方法结构化开发方法(Structured Developing Method)是现有的软件开发方法中最成熟,应用最广泛的方法,主要特点是快速、自然和方便。
结构化开发方法由结构化分析方法(SA法)、结构化设计方法(SD 法)及结构化程序设计方法(SP 法)构成的。
结构化分析(Structured Analysis,简称SA 法)方法是面向数据流的需求分析方法,是70 年代末由Yourdon,Constaintine 及DeMarco 等人提出和发展,并得到广泛的应用。
它适合于分析大型的数据处理系统,特别是企事业管理系统。
SA 法也是一种建模的活动,主要是根据软件内部的数据传递、变换关系,自顶向下逐层分解,描绘出满足功能要求的软件模型。
1 SA 法概述1.SA 法的基本思想结构化分析(Structured Analysis,简称SA 法)是面向数据流的需求分析方法,是70年代由Yourdon,Constaintine 及DeMarco 等人提出和发展,并得到广泛的应用。
结构化分析方法的基本思想是“分解”和“抽象”。
分解:是指对于一个复杂的系统,为了将复杂性降低到可以掌握的程度,可以把大问题分解成若干小问题,然后分别解决。
图4 是自顶向下逐层分解的示意图。
顶层抽象地描述了整个系统,底层具体地画出了系统的每一个细节,而中间层是从抽象到具体的逐层过渡。
抽象:分解可以分层进行,即先考虑问题最本质的属性,暂把细节略去,以后再逐层添加细节,直至涉及到最详细的内容,这种用最本质的属性表示一个自系统的方法就是“抽象”。
2.SA 法的步骤⑴建立当前系统的“具体模型”;系统的“具体模型”就是现实环境的忠实写照,即将当前系统用DFD 图描述出来。
这样的表达与当前系统完全对应,因此用户容易理解。
⑵抽象出当前系统的逻辑模型;分析系统的“具体模型”,抽象出其本质的因素,排除次要因素,获得用DFD 图描述的当前系统的“逻辑模型”。
软件工程第四章结构化需求分析
型。
结构化分析模型
系统模型从以下不同的角度表述系统:
从外部来看,它是对系统分析上下文或系统环
境建模; 从行为上看,它是对系统行为建模; 从结构上看,它是对系统的体系结构和系统处 理的数据结构建模。
实例分析:图书馆系统
借书者 1 借书记录 包含 1 预约 M 书目
1
借/还/续借
M
图书 N
预约记录
实例分析:图书馆系统
实体:图书、借书者、管理员、借书目录、 预约记录、书目 属性给出如下:
借书者:借书者编号、姓名、性别、借书数、
最大借书数、罚金金额、有限期 图书:图书号、书目号 书目:书目号、书名、作者、出版社、丛书名、 收藏数、在馆数、预约数 借书记录:图书号、借书者编号、借出日期、 应还日期、续借次数 预约记录:书目号、借书者编号、预约日期
数据字典
数据字典是分析模型中出现的所有名字的一个 集合,并包括有关命名实体的描述 数据字典有以下两个作用:
它是所有名字信息管理的有效机制 作为连接软件分析、设计、实现和进化阶段的开发
机构的信息存储
数据字典应该由四类元素的定义组成:
数据流 数据流分量 数据存储 处理
实例分析:POS机系统
1 销售记录 1 付款 包含 M 商品 N 描述
N
1
商品描述
支付记录
实例分析:POS机系统
实体有销售记录、支付记录、商品、商品 描述 关联:
销售包含一组商品; 每个商品都有相应的描述信息; 每个支付对应一个销售。
实体的属性:
需求结构化需求分析
3.5 结构化分析
结构化开发方法
➢ 是现有的软件开发方法中最成熟,应用最广泛的方法, 主要特点是快速,自然和方便。
➢ 结构化方法总的指导思想自顶向下、逐步求精。它的基 本原则是功能的分解与抽象。
3.4.1 模型和建模
模型的类型
➢ 数学模型:描述系统技术方面的一系列数学公式 ➢ 描述模型:描述系统某些方面的叙述性的备忘录、报
表或列表等 ➢ 图形模型:描述系统的图表或系统某些方面的示意性
表示
3.4.1 模型和建模
什么是模型化方法
➢ 是通过抽象、概括和一般化,把研究的对象或问题转化 为本质(关系或结构)相同的另一对象或问题,从而加 以解决的方法。
3.4.2 结构化分析方法
可行性研究阶段主要考虑系统是否有可行的解决方 案,忽略了许多实际的数据元素.
结构化分析方法是面向数据流自顶向下逐步求精, 并进行需求分析.
➢ 将可行性研究阶段获得的高层DFD图进一步细化,把数据 流和数据存储定义到元素级.
使用数据流图
数据流图DFD以图形方式刻画业务系统中的数据 处理过程和数据流
➢ 听取用户的意见,补充遗漏部分,修改不正确部分.
1和2反复进行,不断细化DFD图,DD和IPO图,直到 所有系统元素都十分清楚.
分析追 踪数据 流程图
有补充修正
用户 复查
无补充 修正
需要分解
细化数据 流程图 不需分解
3.4.3 需求分析过程示意
Step1: 通过对现实环境的调查,获得当前系统 的物理模型
数据流图的优点
➢ 必不过早的着手系统的技术实现 ➢ 进一步了解系统和子系统的相互关系 ➢ 通过数据流图与用户交流当前系统知识 ➢ 分析建议的系统以确定是否定义了必要的数据和过程
结构化需求分析报告示例,1200字
结构化需求分析报告示例结构化需求分析报告示例一、引言本报告旨在对某个特定项目进行需求分析,明确项目的功能需求、性能需求、界面需求以及其他相关需求。
在需求分析阶段,我们将通过各种方法与项目相关方进行沟通,并根据收集到的信息进行分析和总结。
二、项目概述本项目是一个在线购物平台,旨在提供用户友好的购物体验和快速、安全的交易服务。
平台将包含商品展示、购物车管理、订单管理、支付管理和用户管理等功能模块。
三、功能需求1. 商品展示a. 显示商品的名称、价格、库存和描述信息b. 支持商品分类和搜索功能c. 显示商品的图片d. 提供商品的评价和评论功能2. 购物车管理a. 允许用户将商品添加到购物车b. 显示购物车中的商品列表和总价c. 允许用户修改购物车中的商品数量d. 允许用户删除购物车中的商品e. 提供结算功能,生成订单3. 订单管理a. 显示用户的订单列表b. 显示订单的状态和详情c. 允许用户取消订单d. 允许用户确认收货4. 支付管理a. 提供多种支付方式,如微信支付、支付宝等b. 显示支付状态和详情c. 允许用户退款5. 用户管理a. 允许用户注册、登录和退出b. 允许用户修改个人信息c. 提供用户的积分和等级信息d. 提供用户的订单和购物车记录四、性能需求1. 响应时间:网页加载时间不超过3秒2. 并发用户数:系统能同时支持1000个用户在线浏览和购买商品3. 数据存储:能够支持百万级别的商品数据和用户数据存储五、界面需求1. 页面布局:清晰、简洁,易于导航和操作2. 配色方案:温和、舒适,符合购物氛围3. 图标和图片:清晰、高品质,以提高用户的购物体验六、其他需求1. 安全性:保护用户隐私信息,防止数据泄露和非法操作2. 可靠性:系统稳定运行,不容易出现故障或崩溃3. 可扩展性:能够轻松添加新功能和支持更多用户4. 可维护性:易于修改和维护,方便后续版本的更新和维护5. 移动端适配:支持响应式设计,适应不同终端的屏幕尺寸和操作方式七、总结通过对项目的需求分析,我们明确了功能需求、性能需求、界面需求和其他相关需求。
5需求分析-结构化
返回
系统需求
• 系统需求更加详细地描述系统应该做什么,通常 包括许多模型 • 系统需求模型的描述 —结构化语言 —可视化 —形式化语言 • 系统需求主要面向开发人员进行描述,使软件进 行设计的基础
43
返回
功能需求
• 描述系统应该提供的功能和服务,一般涉 及用户、外部系统和该系统之间的交互, 一般不考虑系统的实现细节。 • 举例: —系统可以提供适当的浏览器供用户浏览电 子文献 —用户每次借阅图书对应唯一标识符,并记 录在用户帐户上。
24
判定表如下
营业额≥1000 信誉好 20年以上老顾客 正常处理 优惠 × F T F F × × × T F T T T -
25
数据建模—ER图
概念数据模型 一种面向问题的数据模型,是按照用户的观 点对数据建立的模型。 概念数据模型包含的信息 —数据对象 —数据对象的属性 —数据对象彼此间相互连接的关系。
33
状态
定义 代表系统的一种行为模式 符号 —初态:实心圆 —终态:一个同心圆(内圆是实心的) —中间状态:圆角矩形 举例 “小型图书管理系统”中借阅者帐户的状态
34
返回
中间状态的表示——圆角矩形
状态名称
(状态变量的 名称和值)
状态的唯一标识 在此状态下行为所需变量
(状态的活动表)
在此状态下的行为 事件名(参数)/动作表达式 事件名——do、entry、exit 动作表达式——具体动作
4
需求分析的5个阶段
需求 获取
需求 建模
形成 需求 规格
需求 验证
需求 管理
开发、捕获 和修订用户 的需求。
生成需求规 为最终用户所看 格说明书 到的系统建立一 个概念模型
需求分析(传统结构化方法)
2。
2需求分析需求分析是通过开发人员的分析概括,抽象为完整的需求定义,再形成一系列文档的过程。
2.2.1需求分析的目的与意义需求分析是一个非常重要的过程,它完成的好坏直接影响后续软件开发的质量。
有效的需求分析通常都具有一定的难度.需求分析不仅仅是属于软件开发生命周期早期的一项工作,而且还应该贯穿于整个生命周期中,它应该随着项目的深入而不断地变化。
此外,为了方便后续的评审和测试等工作,需求的描述应该尽量做到:具体、详细、可以测量和可以实现,并且基于时间。
2。
2.2需求分析的步骤2-3所示。
需求涉及的方面:在功能方面,需求包括系统要做什么,相对于原系统目标系统需要进行哪些修改,目标用户有哪些,以及不同用户需要通过系统完成何种操作等。
在性能方面,需求包括用户对于系统执行速度、响应时间、吞吐量和并发度等指标的要求。
在运行环境方面,需求包括目标系统对于网络设置、硬件设备、温度和湿度等周围环境的要求,以及对操作系统、数据库和浏览器等软件配置的要求。
在界面方面,需求涉及数据的输入/输出格式的限制及方式、数据的存储介质和显示器的分辨率要求等问题。
1。
获取需求,识别问题开发人员从功能、性能、界面和运行环境等多个方面识别目标系统要解决哪些问题,要满足哪些限制条件,这个过程就是对需求的获取。
开发人员通过调查研究,要理解当前系统的工作模型和用户对新系统的设想与要求.遗漏需求是最难修订的需求错误。
获取需求是需求分析的基础.为了能有效地获取需求,开发人员应该采取科学的需求获取方法。
在实践中,获取需求的方法有很多种,比如,问卷调查、访谈、实地操作、建立原型和研究资料等。
问卷调查法是采用调查问卷的形式来进行需求分析的一种方法。
通过对用户填写的调查问卷进行汇总、统计和分析,开发人员便可以得到一些有用的信息。
采用这种方法时,调查问卷的设计很重要。
一般在设计调查问卷时,要合理地控制开放式问题和封闭式问题的比例.开放式问题的回答不受限制,自由灵活,能够激发用户的思维,使他们能尽可能地阐述自己的真实想法.但是,对开放式问题进行汇总和分析的工作会比较复杂。
第3章 结构化需求分析
为了开发出真正满足用户需求的软件 产品,首先必须知道用户的需求。 产品,首先必须知道用户的需求。
教学目的
掌握需求分析的任务 理解E-R图、数据流图、数据字典的编制 理解 图 数据流图、 理解解需求规格说明的制作
对软件需求的深入理解是软件开发工 作获得成功的前提和关键, 作获得成功的前提和关键,不论我们把设 计和编码工作做得如何出色, 计和编码工作做得如何出色,不能真正满 足用户需求的程序只会给用户带来失望, 足用户需求的程序只会给用户带来失望, 给开发者带来烦恼。 给开发者带来烦恼。
在非正式的访谈中, 在非正式的访谈中,将提出一些可以 自由回答的开放性问题, 自由回答的开放性问题,以鼓励被访问的 人员表达自己的想法,例如, 人员表达自己的想法,例如,询问用户为 什么对目前正在使用的系统感到不满意。 什么对目前正在使用的系统感到不满意。
当需要调查大量人员的意见时, 当需要调查大量人员的意见时,向被 调查的人员分发调查表是一个十分有效的 做法。 做法。
在对用户进行访谈的过程中使用情景 分析技术往往非常有效。 分析技术往往非常有效。所谓情景分析就 是对用户运用目标系统解决某个具体问题 是对用户运用目标系统解决某个具体问题 的方法和结果进行分析。 的方法和结果进行分析。
3.2.2 术
简易的应用规格说明技
这种方法提倡用户与开发者密切合作, 这种方法提倡用户与开发者密切合作, 共同标识问题,提出解决方案的要素, 共同标识问题,提出解决方案的要素,商 讨不同的方法并指定基本的需求。今天, 讨不同的方法并指定基本的需求。今天, 简易的应用规格说明技术已经成为信息系 统界使用的主流技术。 统界使用的主流技术。
快速原型应该具备的第二个特性是 容易修改” “容易修改”。如果原型的第一版不是用 户所需要的, 户所需要的,就必须根据用户的意见迅速 地修改它,构建出原型的第二版, 地修改它,构建出原型的第二版,以更好 地满足用户的需求。 地满足用户的需求。
《软件工程实用教程》第3_章_结构化需求分析
第3 章 結構化需求分析
(2)分析與綜合 從資訊流和資訊結構出發,逐步細化軟 體的所有功能,找出系統各個元素之間 的聯繫、介面特性和對設計的限制,判 斷是否存在因片面性或短期行為而導致 的不合理需求,判斷是否有用戶尚未提 出的確實有價值的潛在需求,從而提出 其中不合理的部分,增加真正需要的部 分。
第3 章 結構化需求分析
2.系統需求:系統需求是比用戶需求更具有技 術特性的需求陳述,是提供給開發者或用戶 方技術人員閱讀的,並將作為軟體開發人員 設計系統的起點與基本依據。系統需求需要 對系統的功能、性能、數據等方面進行規格 定義。
第3 章 結構化需求分析
(1)功能需求 功能需求是軟體系統的最基本的需求表述,包 括對系統應該提供的服務,如何對輸入做出 反應,以及系統在特定條件下的行為描述。 在某些情況下,功能需求還必須明確系統不 應該做什麼,這取決於開發的軟體類型、軟 體未來的用戶、以及開發的系統類型。所以, 功能性的系統需求,需要詳細地描述系統功 能特徵、輸入和輸出介面、異常處理方法等。
第3 章 結構化需求分析
需求開發活動: 將系統級的需求分為幾個子系統,並 將需求中的一部份分配給軟體組件。 瞭解相關品質屬性的重要性。 商討實施優先順序的劃分。 將所收集的用戶需求編寫成規格說明 和模型。 評審需求規格說明
第3 章 結構化需求分析
需求管理活動包括: 定義需求基線 評審提出的需求變更、評估每項變更 的可能影響從而決定是否實施它。 以一種可控制的方式將需求變更融入 到專案中。 使當前的專案計畫與需求一致。 估計變更需求所產生影響並在此基礎 上協商新的承諾(約定)。
第3 章 結構化需求分析
本章學習內容: 1.掌握需求分析的基本概念 2.明確需求分析應遵循的原則 3.掌握如何使用需求獲取技術來進行數據 採集 4.掌握結構化分析的思想與過程 5.掌握數據流建模技術
结构化需求分析方法
结构化分析(SA)方法结构化开发方法(Structured Developing Method)是现有的软件开发方法中最成熟,应用最广泛的方法,主要特点是快速、自然和方便。
结构化开发方法由结构化分析方法(SA法)、结构化设计方法(SD 法)及结构化程序设计方法(SP 法)构成的。
结构化分析(Structured Analysis,简称SA 法)方法是面向数据流的需求分析方法,是70 年代末由Yourdon,Constaintine 及DeMarco 等人提出和发展,并得到广泛的应用。
它适合于分析大型的数据处理系统,特别是企事业管理系统。
SA 法也是一种建模的活动,主要是根据软件部的数据传递、变换关系,自顶向下逐层分解,描绘出满足功能要求的软件模型。
1 SA 法概述1.SA 法的基本思想结构化分析(Structured Analysis,简称SA 法)是面向数据流的需求分析方法,是70年代由Yourdon,Constaintine 及DeMarco 等人提出和发展,并得到广泛的应用。
结构化分析方法的基本思想是“分解”和“抽象”。
分解:是指对于一个复杂的系统,为了将复杂性降低到可以掌握的程度,可以把大问题分解成若干小问题,然后分别解决。
图4 是自顶向下逐层分解的示意图。
顶层抽象地描述了整个系统,底层具体地画出了系统的每一个细节,而中间层是从抽象到具体的逐层过渡。
抽象:分解可以分层进行,即先考虑问题最本质的属性,暂把细节略去,以后再逐层添加细节,直至涉及到最详细的容,这种用最本质的属性表示一个自系统的方法就是“抽象”。
2.SA 法的步骤⑴建立当前系统的“具体模型”;系统的“具体模型”就是现实环境的忠实写照,即将当前系统用DFD 图描述出来。
这样的表达与当前系统完全对应,因此用户容易理解。
⑵抽象出当前系统的逻辑模型;分析系统的“具体模型”,抽象出其本质的因素,排除次要因素,获得用DFD 图描述的当前系统的“逻辑模型”。
需求分析(传统结构化方法)
2.2需求分析需求分析是通过开发人员的分析概括,抽象为完整的需求定义,再形成一系列文档的过程。
2.2.1需求分析的目的与意义需求分析是一个非常重要的过程,它完成的好坏直接影响后续软件开发的质量。
有效的需求分析通常都具有一定的难度。
需求分析不仅仅是属于软件开发生命周期早期的一项工作,而且还应该贯穿于整个生命周期中,它应该随着项目的深入而不断地变化。
此外,为了方便后续的评审和测试等工作,需求的描述应该尽量做到:具体、详细、可以测量和可以实现,并且基于时间。
2.2.2需求分析的步骤2-3所示。
图2-3需求分析的步骤需求涉及的方面:在功能方面,需求包括系统要做什么,相对于原系统目标系统需要进行哪些修改,目标用户有哪些,以及不同用户需要通过系统完成何种操作等。
在性能方面,需求包括用户对于系统执行速度、响应时间、吞吐量和并发度等指标的要求。
在运行环境方面,需求包括目标系统对于网络设置、硬件设备、温度和湿度等周围环境的要求,以及对操作系统、数据库和浏览器等软件配置的要求。
在界面方面,需求涉及数据的输入/输出格式的限制及方式、数据的存储介质和显示器的分辨率要求等问题。
1. 获取需求,识别问题开发人员从功能、性能、界面和运行环境等多个方面识别目标系统要解决哪些问题,要满足哪些限制条件,这个过程就是对需求的获取。
开发人员通过调查研究,要理解当前系统的工作模型和用户对新系统的设想与要求。
遗漏需求是最难修订的需求错误。
获取需求是需求分析的基础。
为了能有效地获取需求,开发人员应该采取科学的需求获取方法。
在实践中,获取需求的方法有很多种,比如,问卷调查、访谈、实地操作、建立原型和研究资料等。
问卷调查法是采用调查问卷的形式来进行需求分析的一种方法。
通过对用户填写的调查问卷进行汇总、统计和分析,开发人员便可以得到一些有用的信息。
采用这种方法时,调查问卷的设计很重要。
一般在设计调查问卷时,要合理地控制开放式问题和封闭式问题的比例。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
马达数据=线圈数据+磁铁数据
2016/10/2 数据流图
马达设计图
17
局部文件,在画分层数据流图时当分层到涉及到住够细的时候,一般为最 底层,这时候可能会涉及到文件存贮部分,这时候就应该画出文件,而中 间层由于从“抽象”原则上来讲,并不会关注加工下面的细节,所以不必 画出文件部分 分解的程度,一个加工每次分解到多少个子加工,经验得出的答案是7个 1)分解应自然,概念上合理、清晰 2)只要不影响数据库图的“易理解性”,可言适当的多分解成几个部分,这样 分层图的层数可能就少些 3)一般来说,在上层可言分解的快些,在下层分解的慢些,因为上层是一些综 合性的描述,“易理解性”相对的来说不太重要,而下层由于跟具体,更贴近 需求本身所以要慎重
>小明确定了需要的面食,但是小明 仍然不能确定面食中的佐料有哪些 >小明提出问题 >小明不知道餐馆能做什么
2016/10/2
>服务员知道了小明的需求,同时 也就确定了“做什么” >服务员需要代表“餐馆”说明餐馆能 >同时根据服务员过去的经验,提 “做什么” 出了小明可能关心的问题,予以 确认 需求分析和规格说明阶段的基本概念
小明(甲方)
XX餐馆服务员(乙方)
:这里什么最好吃 :给我来一碗牛肉面 :少加一点,谢谢…… 额!等一下,另外我不 要大蒜 :不是让你们不要放大 蒜吗?怎么还有?
:我们这里有拉面、牛 肉面、刀削面…… :牛肉面需要加辣椒吗? :好嘞,来这是你要的 面 :你刚刚没说啊……难 道是我听错了
2016/10/2
结构化分析(SA方法)概述
8
目前大多数计算机系统都是用来代替一个当前已经存在的人工数据处理系统, 对于这类系统的分析过程可分为四步进行: 理解当前的现实环境,获得当前人工系统的具体模型; 从当前系统的具体模型抽象出当前系统的逻辑模型; 分析目标系统与当前系统逻辑上的差别,建立目标系统的逻辑模型; 为目标系统的逻辑模型做补充
2016/10/2
需求分析和规格说明阶段的基本概念
4
需求分析和规格说明阶段又称为需求确定阶段和或分析阶段,其目的是澄 清用户的需求。这个阶段的基本任务是:用户和软件人员双方一起来充分 地理解用户的要求,并把双方共同的理解明确地表达成一份书面文档—— 需求说明书。 分析阶段的两大任务就是“理解”和“表达”,分析就是理解问题,“规 格说明”就是按某种标准的方式把问题表达出来
车轮设 计
2016/10/2 数据流图 14
对一个大型的系统,如果用一张数据流图画出所有的数据流和加工则图纸 将变得很庞大复杂,难以理解,为了控制复杂性,SA方法采用了“分层”的技 术
逐层分解的方式不是一下子引进太多的细节,而是有控制的逐步增加细节, 实现从抽象到具体的逐步过渡,用数据流图来描述“逐层分解”,就得到 了一个分层的数据流图 一套分层的数据流图由顶层、底层、和中间层组成。顶层说明了系统的边 界,即系统的输入和输出数据流,顶层图只有一张。底层图由一些不必再 分解的加工组成,在顶层和底层之间的是中间层,中间层的数据流图描述 了某个加工的分解,而它的组成部分又要进一步被分解。小系统可能没有 中间层。
需求分析和规格说明方法
作者:杨乾明
2016/10/2
需求分析和规格说明方法
1
需求分析和规格说明阶段的基本概念 结构化分析(SA方法)概述 数据流图 数据词典 小说明 分析的步骤 SA方法小结 快速原型法 分析阶段的其它工作
需求分析和规格说明方法 2
2016/10/2
>可以看出在小明说“谢谢”这之 前他与服务员的沟通是很顺利的 >此时只有服务员自己知道, 刚刚问辣椒的时候面的佐料都 已经放好了,最后的“听错了” 只是为自己找台阶下而已
2016/10/2
数据流图
12
对于任何一个系统,在刚开始时只是将现实情况反映出来,而不是急于去想 象未来的计算机系统是怎么样,系统不一样,画出来的数据流图肯定不一样, 但原则上都是“由外向里”进行的,“由外向里”是一种比较自然而且有条理 的思考过程,通常人们观察事物的也基于此进行。
第一步:画系统的输入输出,首先画系统的输入数据流和输出数据流,也 就是先决定系统的范围,同样,对每一个加工来说也是先画出它们的输入 输出,再考虑这个加工的内部; 第二步:画系统的内部,此时需要将系统的输入输出数据流用一连串加工 连接起来,一般可以从输入端逐步画到输出端,也可以反过来追溯。在数 据流的组成或者值发生变化的地方应画上一个加工,他的作用就是实现这 一变化 材料数据 图形绘制
2016/10/2
需求分析和规格说明阶段的基本概念
6
这是一个忧伤的故事... 小明年幼的时候家里很穷,看着电视里小朋 友能玩各种玩具是非常的羡慕,其中对于玩具 车的偏爱,对年幼的小明来说就是遥不可及的 梦想… 小明虽然没有车,但是小明见过邻居家的打 米机,通过柴油机带动打米机就能工作。 小明虽然没有车,但是知道爸爸买回来的录 音机可以插入磁带就能转动发出声音。 就这样……在一个罪恶的晚上,小明摔坏了 爸爸的录音机,挨了一顿打,身上很疼,但是 心理却很开心。 小明拿着录音机中的马达电动机,拿着一根 妈妈弄头发的胶圈(quan),再拿着很长时间收 集的几个大小不一的玩具车轮,开始了实现他 的梦想之旅….. 年幼的小明不知道的是当他做完这辆小车后, 他已经学会了初中物理的力学知识,他还不知 道的是他已经学会了一套分析问题看待问题的 方法等等…… 为了梦想,一切的付出都是值得的。
2016/10/2
需求分析和规格说明阶段的基本概念
5
作为用户和软件人员之间的合同,为双方相互了解提供基础 反映出问题的结构,可以作为软件人员进行设计和编写的基础 作为验收的依据,即作为选取测试用例和进行形式验证的依据 注:需求说明书应该即完整、一致、精确、无二义、又要简明易懂并易于维护
图0 1 马达设 计
图1 1.1 线圈设 计 1.2 磁铁设 计
2016/10/2
数据流图
16
父图和子图的平衡,就是父图中的加工对应的输入输出,在子的数据流图 中最开始的输入和最后的输出是能对应上的,这就叫平衡。有一种例外的 情况就是,父图的输入输出,与子图对应不上的时候,若是子图多出了很 多输入或者输出数据流,此时若是在“数据词典”中对数据的输入输出做 好了定义,也就是说,几个输入或者输出数据流对应了一个输入输出数据 流,此时可以认为是平衡的。举个例子,我们对“马达设计”做个小小的 变更 父图 子图 内 图0 图1 部 数 1.1 1.2 据 1 马达设计图 马达数据 马达内 马达整 马达设 部设计 体设计 计
2016/10/2
数据流图
19
适当的命名 数据流图中每一成分的命名是否恰当与数据流图的易理解性有直接的关系 1)为避免引起错觉,名字要适合于整个数据流,而不是仅仅反应它的 某些成分 2)避免用空洞的名字,如“数据”“信息”“输入”“输出”,因为 缺乏具体的含义 3)如果发现难以为某个数据流命名,这往往是数据流图分解不当的征 兆,需要从新尝试分解 4)通常应先为数据流命名再为加工命名,这也反映了由外向里的思考 过程 5)为加工命名时,建议使用动词加名词的方式,若是涉及多个动词则 建议把多个分开,分成多个加工 画数据流而不是控制流 常规的框图使用的箭头大多表示的是一个动作,这样,就与数据流图的符 号定义产生了对立,因此要区分开,毕竟,数据流图是从数据的角度来描述一 个系统
2016/10/2
结构化分析(SA方法)概述
ห้องสมุดไป่ตู้
10
如果我们打算把小明造车的实例拿来做一个类似软件层面的分析可得到如下 初步的“数据流图” 该“数据流图” 我们也可以认为是玩具车制造厂商的设计过程
2016/10/2
数据流图
11
含义
元素
数据流图是SA方法中用于表示逻 辑系统模型的一种工具,它从数 据传递和加工的角度,以图形的 方式来刻画数据流从输入到输出 的变换过程
2016/10/2
数据流图
18
父图和子图的输入输出数据流要“平衡”
更加“抽象”原则,每张图只画出作为加工间交界面的文件和数据流,而 不必画出加工内部的文件
如果要了解某个加工内部的细节,可以阅读与这个加工的编号相同的一张 图 一个加工一般最多分解成7个子加工 当每个加工都已经足够简单时,分解就可以结束
2016/10/2
结构化分析(SA方法)概述
7
小明造车的故事告诉我们看问题要看到本质“车能跑,不止是因为有轮子” 那么当我们把复杂的问题抛出来以后怎么解决呢?那就是“把复杂的问题 简单化,把简单的问题具体化”,这句话对应到我们软件层面就是“结构 化分析” “复杂问题简单化”对应到我们的软件结构化分析就是“分解”,如何做 好简单化呢?就是把大问题分解成若干小问题,然后分别解决。 “简单问题具体化”对应到我们的软件结构化分析就是“抽象”,如何做 好具体化呢?还得从分解说起,当我们把问题分解到足够细的时候,这时 候我们一般就能看到问题的本质,然而分解后的问题大问题没了,小问题 很多,这时候我们就要去做一个分层筛选,把每一个层次的重要部分抓取 出来,省去细节,获取所有层面最本质的属性,对于后续工作的开展再逐 层添加细节
2016/10/2
结构化分析(SA方法)概述
9
一套分层的数据流图 一本数据词典 一组小说明 补充材料 注:以上就是用SA方法获得的需求说明书包含的几部分组成
数据流图:描述系统的分解,即描述系统由那几部分组成,各部分之间有什么 联系等; 数据词典:描述系统中的每一个数据 小说明:详细描述系统中的每一个加工 补充材料:额外的描述系统功能的材料