软 件 工 程(第四章结构化需求分析)

合集下载

软件工程第四章 结构化分析

软件工程第四章 结构化分析

软件需求分析阶段的工作,可以分成以下四个方面 :对问题的识别、分析与综合、制定规格说明以及 ( )。 A.总结 B.实践性报告 C.需求分析评审 D.以上答案都不正确
答案:C
需求验证应该从下述几个方面进行验证:(C ) A 可靠性、可用性、易用性、重用性 B可维护性、可移植性、可重用性、可测试性 C一致性、现实性、完整性、有效性 D 功能性、非功能性
3、需求分析步骤
1、需求获取
3、亲身实践:观察用户工作流程
优点: 1. 通过直接观察提取用户或系统的特性; 2. 有助于理解难以用语言描述清楚的复杂业务。 3. 更加准确和真实 缺点:
1. 观察可能使用户紧张,从而表现与往常不同。 2. 比较费时间
3、需求分析步骤
1、需求获取
3、需求分析步骤
3、需求分析步骤
3 需求描述
1. 又叫:需求规约
2. 是分析任务的最终产物,给出对目标软件的 各种需求。
3. 需求规约作为用户和开发者之间的一个协议 (需求规格说明书),在之后的软件工程各 个阶段发挥重要作用
软件需求分析阶段的目的是澄清用户的要求 ,并把双方共同的理解明确地表达成一份书 面文档——(软件需求规格说明书)。
经调查,系统分析员给出有问题的初略陈述, 其中部分描述如下:某商场的采购部门要求每 天开出定购清单,交采购员输入系统;仓库管 理员还要将库存信息此输入系统,经库存业务 (进贷或出贷)处理后输出。从这段描述可知 该部分数据流图中的外部项为:
A.采购员、仓库管理员 B.定购清单、库存业务 C.库存业务 D.定购清单、采购员 答案A
3、需求分析步骤
4、需求验证
1. 进行需求评审
2. 验证需求的一致性
3. 验证需求的现实性

结构化需求分析

结构化需求分析

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 需求分析阶段性成果——需求规格说明书

实用软件工程 第2版 第4章 结构化分析

实用软件工程 第2版 第4章 结构化分析

第4章结构化分析了解需求分析的任务和原则本章目标熟悉进行需求分析的步骤和方法了解需求管理熟悉需求分析的常用方法了解软件原型掌握结构化分析的几种常用建模方法掌握结构化分析的几种图形工具目录 需求分析4.1 需求分析4.14.2结构化分析概述4.3结构化分析方法4.4结构化分析图形工具4.1需求分析•4.1.1需求分析的任务为什么需要需求分析为了开发出真正满足用户需要的软件产品,明确地了解用户需求是关键。

虽然在可行性研究中,已经对用户需求有了初步的了解,但是很多细节还没有考虑到。

可行性研究的目的是评估系统是否值得去开发,问题是否能够解决,而不是对需求进行定义。

如果说可行性分析是要决定“做还是不做”,那么需求分析就是要回答“系统必须做什么”这个问题。

需求分析是一个非常重要的过程,它完成的好坏直接影响了后续软件开发的质量。

•1.确定系统的运行环境要求系统运行时的硬件环境要求,如对计算机的CPU、内存、存储器、输入/输出方式、通信接口和外围设备等的要求;软件环境要求,如操作系统、数据库管理系统和编程语言等的要求。

•2.确定系统的功能性需求和非功能性需求•需求可以分为两大类,功能性需求和非功能性需求,前者定义了系统做什么,后者定义了系统工作时的特性。

•功能需求是软件系统的最基本的需求表述,包括对系统应该提供的服务,如何对输入做出反应,以及系统在特定条件下的行为描述。

在某些情况下,功能需求还必须明确系统不应该做什么,这取决于开发的软件类型、软件未来的用户、以及开发的系统类型。

所以,功能性的系统需求,需要详细地描述系统功能特征、输入和输出接口、异常处理方法等。

•非功能性需求包括对系统提出的性能需求、可靠性和可用性需求、系统安全以及系统对开发过程、时间、资源等方面的约束和标准等。

性能需求指定系统必须满足的定时约束或容量约束,一般包括速度(响应时间)、信息量速率(吞吐量、处理时间)和存储容量等方面的需求。

•3.进行有效的需求分析•一般情况下,用户并不熟悉计算机的相关知识,而软件开发人员对相关的业务领域也不甚了解,用户与开发人员之间对同一问题理解的差异和习惯用语的不同往往会为需求分析带来很大的困难。

结构化需求分析方法

结构化需求分析方法

结构化分析(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 图描述的当前系统的“逻辑模型”。

软件工程需求分析(精品PPT)

软件工程需求分析(精品PPT)
•确定被开发软件系统的系统元素
•将功能和信息结构分配到这些系统元素中 •需求分析的任务
•深入描述软件的功能和性能 •确定软件设计的约束和软件同其它系统元素的接口细节
•定义软件的其它有效性需求
第四页,共七十七页。
需求(xūqiú)分析的具体任务
•需求分析阶段的具体任务:
•确定对系统的综合要求
•系统功能要求
第四章 析根底
软件工程 需求分 (ruǎn jiàn ɡōnɡ chénɡ)
第一页,共七十七页。
第四章 需求分析 根底 (fēnxī)
• 需求(xūqiú)分析的任务与原那么〔重点〕 • 需求分析的任务 • 需求分析的过程 • 软件需求分析的原那么 • 初步需求获取技术 • 需求建模〔重点〕 • 问题抽象、问题分解与多视点分析 • 支持需求分析的快速原型技术 • 需求规格说明书
第二十六页,共七十七页。
教务管理系统调查分析过程 1、认真学习教务管理方面的知识,重点掌握其中
的名词和术语 2、收集目前教务管理方面资料和软件,了解其特
•了解系统的需求 •软件开发是系统开发的一局部,仔细分析研究系统的需求 规格说明,对软件的需求获取是很有必要的
第十六页,共七十七页。
✓需求调查对象
对组织的高层管理者,进行组织管理目标或经营方 针等组织战略问题的调查
对中层的管理者,进行全部业务流的调查 对业务工作人员,进行详细业务信息的调查
✓市场调查 了解市场对待开发软件有什么样的要求;了解市场上 有无与待开发软件类似的系统
第十页,共七十七页。
需求(xūqiú)分析流程
第十一页,共七十七页。
软件需求(xūqiú)分析的原那么
1、需要能够表达和理解问题的信息域和功能域 信息域应包括:

软件工程案例_结构化方法的需求分析

软件工程案例_结构化方法的需求分析

案例—结构化方法的需求分析一、约定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—取款”为例说明▲功能简介(略)▲录入数据:取款单▲界面原型(略)▲前置条件《校园卡基本档案》存在与《取款单》中“卡号”相对应的记录。

▲对录入数据的约束规则●该档案记录的“密码”与《取款单》输入值一致。

●该档案记录的“当前状态”为“正常”。

●该档案记录的“帐户余额”值大于或者等于《取款单》的“取款金额”。

▲系统处理●新增《存取款记录》。

软件需求分析

软件需求分析
其中,前三行定义了操作的语法,后 两行把它们的语义定义为一些方程。
.
43
(2)有限状态模型
parnas提出的使用最广泛的一种可 执行规格说明形式。从一个初始状 态开始接收输入,到产生输出,状 态在推移变化。施加在状态元素上 的约束确定了有效状态的推移。 见下例:
.
44
举例:建立用户/程序对话
.
45
.
8
(3) 编制需求分析阶段的文档
软件需求说明书 数据要求说明书 初步的用户手册 修改、完善与确定软件开发实施计

.
9
(4) 需求分析评审
系统定义的目标是否与用户的要求一 致;
系统需求分析阶段提供的文档资料是 否齐全;
文档中的所有描述是否完整、清晰、 准确反映用户要求;
与所有其它系统成分的重要接口是否 都已经描述;
求; 是否详细制定了检验标准,它们能否
对系统定义是否成功进行确认;
.
12
需求分析流程
.
13
软件需求分析的原则
需要能够表达和理解问题的信息域 和功能域
要能以层次化的方式对问题进行分 解和不断细化
要给出系统的逻辑视图和物理视图
.
14
面向数据流自顶向下求精 -结构化分析方法
面向数据流进行需求分析的方法
代数规格说明
有限状态模型
可执行的数据流图
.
41
(1)代数规格说明
代数规格说明使用集合、定义 于这些集合上的函数和定义于 这些函数上的方程来描述对象。 规格说明的操作语义用这些方 程表示。 见下例:
.
42
举例:定义一个无界的栈及其操作
NEW_STACK:→ Stack PUSH:Stack,Element → Stack POP: Stack → (Element | Undefined) POP (NEW_STACK ( ) ) = Undefined POP (PUSH ( stk,elem ) ) = elem

结构化需求分析

结构化需求分析

外部实体
外部实体指系统以外又与系统有联系的人或事物。 它表达了该系统数据的外部来源和去处。例如:人、组 织、外部系统等等。 • 外部实体是数据的来源(谁提供了最初始的数据?) • 外部实体是数据的去处(数据对谁有价值?)
读者
图书 管理员
馆长
读者
图书 管理员
加工(数据处理)
处理指对数据的逻辑处理功能,也就是对数据的变 换功能。 别名:功能、处理过程,数据加工
数据流图的图形符号
或 或
加工。对输入数据进行变换以产生输出数据,其中要注明加工的名字。 外部实体,即数据输入源(Source)或数据输出汇点(Sink)。其中要注明数 据源或数据汇点的名字。

数据存储。要用名词或名词性短语为数据存储命名。 数据流。描述被加工数据及传递方向。箭头旁边要注明数据流的名字,可用名 词或名词性短语命名。
环境图(顶层数据流图)


环境图(context diagram)也称为顶层数据流图 (或0层数据流图),它仅包括一个数据处理过程, 也就是要开发的目标系统。 环境图的作用是确定系统在其环境中的位置,通过确 定系统的输入和输出与外部实体的关系确定其边界。
招生系统需求描述



学校首先公布招生条件,考生根据自己的条件报名,之后 系统进行资格审查,并给出资格审查信息; 对于资格审查合格的考生可以参加答卷,系统根据学校提 供的试题及答案进行自动判卷,并给出分数及答题信息, 供考生查询; 最后系统根据学校的录取分数线进行录取,并将录取信息 发送给考生。
储 户
密码
实例研究——第一层数据流图
+
实例研究——第二层“存款”数据流图
对一层图中的“处理存款”及“处理取款”进行进一步分 解,得到二层数据流图,即处理存款的数据流图和处理取 款的数据流图。

软件工程 第四章 概要设计

软件工程 第四章 概要设计
4.控制耦合 模块之间传递的不是数据信息,而是控制信息如标志、开关量,一个模块控制了另一模块 的功能。
第4章
4.4 模块的独立性
15
4.4.1 耦合性(Coupling)
5.外部耦合 一组模块都访问同一全局简单变量,而且不通过参数表传递该全局变量的信息,则称之为 外部耦合。 6.公共耦合
若一组模块都访问同一全局数据结构,则称之为公共耦合。公共数据环境可以是全局数据
4
4.2.1 概要设计的任务
概要设计的基本任务是: (1)设计软件系统结构; (2)数据结构及数据库设计; (3)编写概要设计文档;
(4)评审概要设计文档。
第4章
4.2 概要设计的任务与步骤
5
4.2.2 概要设计的步骤
概要设计的一般步骤如下: 1.选定体系结构 2.确定设计方案 3.设计软件结构
4.数据结构及数据库设计
(2)一个模块不通过正常入口而直接转入到另一个模块的内部;
(3)两个模块有一部分代码重叠(该部分代码具有一定的独立功能); (4)一个模块有多个入口。
第4章
4.4 模块的独立性
17
4.4.2 内聚性(Cohesion)
一个模块内各个元素彼此结合的紧密程度用内聚(或称聚合)来度量。一个理想的模块只
完成一个功能,模块设计的目标之一是尽可能高内聚。
第4章
4.4 模块的独立性
21
4.4.2 内聚性(Cohesion)
5.通信内聚
指模块内所有处理功能都通过公用数据而发生关系。即模块内各个组成部分都使用相同的 输入数据或产生相同的输出结果。
第4章
4.4 模块的独立性
22
4.4.2 内聚性(Cohesion)

软件工程第四章习题

软件工程第四章习题

第四章习题一、单项选择题(每题1分)1.原型化方法是用户和设计者之间执行的一种交互构成,适用于______系统。

A.需求不确定性高的B.需求确定的C.管理信息D.实时2.原型化方法是一种_______型的设计过程。

A.自外向内B.自顶向下C.自内向外D.自底向上二、填空题(每题2分)1.在JSP方法中解决结构冲突的具体办法是__________________。

2、两个模块都是用同一张表,这种耦合称为____________。

3、一个模块把数值作为参数传送给另一个模块,这种耦合方式称为_______。

4、一个模块内部各程序段都在同一张表上操作,这个模块的内聚性称为________。

5、软件项目计划是可行性研究阶段的结果产品。

但由于可行性研究是在高层次进行系统分析,未能考虑软件系统开发的细节情节,因此_________一般在需求分析阶段完成后才定稿的。

6、_______指在设计和确定模块时,使得一个模块内包含的信息(过程或数据),对于不需要这些信息的其它模块来说,是不能访问的。

7、同一个类中的共享是指同一个类中的对象有着相同的_______和相同的_______。

8、通过____,可以确定组成软件的过程实体。

通过______,可以定义和实施对模块的过程细节和局部数据结构的存取限制。

9、______图描述分层图中一个模块的输入、输出和处理内容。

10、基于IDEF0图的设计也是结构化设计技术之一,它以系统的功能模型和信息结构为基础设计______。

11、________图是描述物理模型的传统工具,用图形符号表示系统中各个元素,表达了系统中各种元素之间的信息流动情况。

12、_____是用来代替被测试模块所调用的模块,它的作用是返回被测模块所需的信息。

13、静态冗余常用的有:______和________。

14、软件结构是以______为基础而组成的一种控制层次结构。

15、软件设计阶段产生的最重要的文档之一是________。

软件工程实验——软件需求分析

软件工程实验——软件需求分析
(3)增强了团队合作和沟通能力:在实验过程中,我与小组成员密切合作,共同完成了实验任务。通过与团队成员的交流和协作,我不仅提高了工作效率和质量,还增强了团队合作和沟通能力。
(4)提高了解决问题的能力:在实验过程中,我遇到了一些问题和困难,通过思考和探索,我学会了如何解决这些问题。通过不断解决问题和总结经验,我提高了自己的解决问题的能力。
注意事项:
(1)调研和需求分析是关键。在实验初期,需要深入相关单位进行调研,了解计算机销售业务的流程和需求,与用户进行交流,了解用户对系统的期望和需求。同时,需要收集并整理相关的资料,对需进行进一步的分析和整理。
(2)数据流图和数据字典是进行需求分析的重要工具。在绘制数据流图时,需要分清系统的边界和内部结构,将系统划分为多个子系统或模块。在定义数据字典时,需要对每个条目进行详细的描述和定义,确保数据的准确性和完整性。
(3)细心、耐心和责任心是必备的素质:软件需求分析是一项复杂而繁琐的工作,需要细心、耐心和责任心。在绘制数据流图、定义数据字典、绘制类图和描述用例时,需要仔细思考和分析,不能出现错误或遗漏。同时还需要对工作负责到底,及时解决问题和总结经验。
(4)良好的沟通和协作能力是成功的保障:软件需求分析是一项团队合作的工作,需要与团队成员和其他相关人员密切合作和沟通。良好的沟通和协作能力能够提高工作效率和质量,同时也能避免出现偏差和错误。在沟通过程中要清晰明确地表达自己的想法和建议,同时也要尊重他人的意见和建议。
(2)数据流图和数据字典定义不够准确。数据流图和数据字典是进行需求分析的重要工具,如果定义不够准确,可能会影响后续的系统设计和开发。因此,在定义数据流图和数据字典时,需要仔细考虑每个条目的准确性和完整性,确保数据的准确性和完整性。
(3)软件需求规格说明(SRS)撰写不够规范。SRS是实验的最后一步,如果撰写不够规范,可能会影响其他人对系统的理解。因此,在撰写SRS时,需要遵循一定的规范和标准,确保SRS的清晰度和可读性。

软件工程教案_4(第四章)

软件工程教案_4(第四章)

耦合强度依赖的因素: 耦合强度依赖的因素:
•一模块对另一模块的引用 •一模块向另一模块传递的数据量 •一模块施加到另一模块的控制的数量 •模块间接口的复杂程度
模块间耦合的类型
低 耦 合 性 无直接耦合
(低耦合) 数据耦合 低耦合)
强 模 块 独 立 性 弱
标记耦合
(中耦合) 控制耦合 中耦合)
外部耦合
§4.3 模块的独立性
4.3.1 模块独立性的概念 模块独立的含义: 模块独立的含义:
模块完成独立的功能 符合信息隐蔽和信息局部化原则 模块间关连和依赖程度尽量小
4.3.2 模块独立性的度量
模块独立性取决于模块的 内部和外部特征。 内部和外部特征。 SD方法提出的定性的度量标准: 方法提出的定性的度量标准: • 模块之间的耦合性 • 模块自身的内聚性
数据耦合举例
开发票 单价 数量 计算水费 金额
(3) 标记耦合(特征耦合) 3) 标记耦合(特征耦合)
如两个模块通过传递数据结构 如两个模块通过传递数据结构
(不是简单数据,而是记录、数组 不是简单数据,而是记录、 等)加以联系,或都与一个数据 加以联系,或都与一个数据
结构有关系, 结构有关系, 则称这两个模块 有关系 间存在标记偶合。 间存在标记偶合。
第四章 软件设计
主要内容: 主要内容: ▲ 软件设计的目标和任务 ▲ 软件设计基础 ▲ 模块的独立性 ▲ 结构化设计方法 ▲ 数据设计及文件设计 ▲ 过程设计
讨论要点
(1)如何将分析模型转换为软件 (1)如何将分析模型转换为软件 设计? 设计? (2)作为软件工程师在软件设计 (2)作为软件工程师在软件设计 方面应使用哪些基本原则和 概念? 概念?
将标记耦合修改为数据耦合举例

软件工程实用案例 第4章 结构化需求分析

软件工程实用案例 第4章 结构化需求分析
2 项目前景 2.1 前景概述 2.2 主要特性
3项目范围 3.1 第一版范围 3.2 后续版本范围 3.3 限制与排除
4项目环境 4.1 操作环境 4.2 涉众 4.3 项目属性
词汇表 参考资料 附录
4.3 需求获取
4.3.3 选择信息的来源
• 1. 涉众
• 包括用户、客户、领域专家、用户替代源(市场人员、销售人员) 等。
4.4 需求分析
4.4.1 过程建模
4.4.1.1 数据流图
3. 分层结构 (3)N层图
图4-12 功能分解示意图
4.4 需求分析
4.4.1 过程建模
4.4.1.1 数据流图
3. 分层结构 (3)N层图
图4-13 食物订货系统的1层图
4.4 需求分析
4.4.1 过程建模
4.4.1.2 微规格说明
正式规定文档所需具有的条件或能力。
(3) 对(1)或(2)所描述的条件或能力的文档化表述。 其中,(1)是从用户角度定义的,(2)是从开发人员、
系统的角度定义的。
4.1 需 求
4.1.2 需求的层次
需求通常体现为三个层次:业务需求、用户需求和系 统需求。
4.1 需 求
4.1.2 需求的层次
4.3 需求获取
4.3.2 定义项目前景和范围
• 1.明确问题
P1 决策者:生产的废品过多。
• 2.发现业务需求
BR1:提供销售订单的准确性,减少因此而产生废品。
BR2:提供销售订单的准确性,在使用后3个月内,减少50%因此而产生 的废品。
4.3 需求获取
4.3.2 定义项目前景和范围
• 3.定义解决方案及系统特性
4.3 需求获取
4.3.4 需求获取的方法

软件工程第四章结构化需求分析

软件工程第四章结构化需求分析

数据字典
定义
数据字典是一种用于描述数据元 素及其属性的工具,它提供了数 据的详细描述和定义。
பைடு நூலகம்
内容
包括数据元素的名称、别名、类 型、长度、取值范围、默认值等 属性信息。
作用
为开发人员提供了一个统一的数 据定义和描述标准,避免了数据 不一致和歧义的问题。
03 结构化需求分析过程
问题识别
01
确定软件系统的范 围和目标
用例表
列出系统的所有用例,包括用例名称、描述、前置条件和后置条件 等。
用户故事表
以用户为中心描述系统需求,包括用户角色、场景、任务和目标等。
原型工具
低保真原型
使用简单的工具和方法创建的原型,主要用于 概念验证和用户反馈收集。
高保真原型
使用高级工具和方法创建的原型,几乎与实际 产品一样,用于详细需求分析和用户测试。
04 结构化需求分析工具
图形工具
流程图
用于描述系统或程序的逻辑流程,包括开始、结束、决策点和活动 等元素。
数据流图
用于描述数据在系统中的流动和处理过程,包括数据源、数据存储、 数据处理和数据终点等元素。
实体关系图
用于描述系统中实体之间的关系,包括实体、关系和属性等元素。
表格工具
需求规格说明书
详细列出系统需求,包括功能需求、性能需求、安全需求和接口 需求等。
步骤
首先确定系统的主要功能,然后逐层向下分解,直 到每个功能都清晰、具体、可实现。
优点
能够全面地了解系统的功能需求,有助于保 证系统的完整性。
数据流图
定义
数据流图是一种图形化表示方法,用于描述系统中数 据的流动和处理过程。
组成
包括数据流、数据存储、数据处理和外部实体等基本 元素。

软件工程第四章结构化需求分析

软件工程第四章结构化需求分析
在开始建立分析模型之前先理解问题。 以业务流程为中心来理解用户需求。 使用多个需求分析视图,建立数据、功能和行为模
型。
结构化分析模型
系统模型从以下不同的角度表述系统:
从外部来看,它是对系统分析上下文或系统环
境建模; 从行为上看,它是对系统行为建模; 从结构上看,它是对系统的体系结构和系统处 理的数据结构建模。
实例分析:图书馆系统
借书者 1 借书记录 包含 1 预约 M 书目
1
借/还/续借
M
图书 N
预约记录
实例分析:图书馆系统
实体:图书、借书者、管理员、借书目录、 预约记录、书目 属性给出如下:
借书者:借书者编号、姓名、性别、借书数、
最大借书数、罚金金额、有限期 图书:图书号、书目号 书目:书目号、书名、作者、出版社、丛书名、 收藏数、在馆数、预约数 借书记录:图书号、借书者编号、借出日期、 应还日期、续借次数 预约记录:书目号、借书者编号、预约日期
数据字典
数据字典是分析模型中出现的所有名字的一个 集合,并包括有关命名实体的描述 数据字典有以下两个作用:
它是所有名字信息管理的有效机制 作为连接软件分析、设计、实现和进化阶段的开发
机构的信息存储
数据字典应该由四类元素的定义组成:
数据流 数据流分量 数据存储 处理
实例分析:POS机系统
1 销售记录 1 付款 包含 M 商品 N 描述
N
1
商品描述
支付记录
实例分析:POS机系统
实体有销售记录、支付记录、商品、商品 描述 关联:
销售包含一组商品; 每个商品都有相应的描述信息; 每个支付对应一个销售。
实体的属性:

软件工程——结构化软件开发——需求分析和概要设计PPT课件

软件工程——结构化软件开发——需求分析和概要设计PPT课件
28
软件设计任务
软件设计是一个把软件需求变换成软件表示的过程。
从工程管理的角度来看.软件设计分两步完成。 概要设计:将软件需求转化为数据结构和软件的系统结构。 详细设计:通过对结构表示进行细化,得到软件的详细的数据结构和算法。
✓ 在概要设计过程中需要完成的工作:
1) 制定规范 在进入软件开发阶段之初,首先应为软件开发组制定在设计时应该共同遵守 的标准,以便协调组内各成员的工作。它包括:
31
4)数据结构设计
确定软件涉及的文件系统的结构以及数据库的模式、子模式,进行数据完整 和安全性的设计。包括:
➢ 确定输入、输出文件的详细的数据结构。 ➢ 结合算法设计,确定算法所必需的逻辑数据结构及其操作。 ➢ 确定对逻辑数据结构所必需的那些操作的程序模块(软件包)。限制和确定各 个数据设计决策的影响范围。
特点:
准确性和一致性。是连接计划时期和开发时期的桥梁, 也是软件设计的依据。
清晰性和没有二义性。
直观、易读和易于修改。 3
需求分析的过程
1. 问题识别
2. 问题分析和方案的综合
3. 编制需求分析阶段的文档
4. 需求分析评审
1.问题的识别———软件做什么和做到什么程度
➢ 功能需求 (软件在职能上应做什么) ➢ 性能需求 (速度,容量等) ➢ 环境需求(硬件和软件支持要求和操作人员素质要求) ➢ 可靠性需求 (不发生故障的概率) ➢ 安全保密的需求 (拒绝非法使用等) ➢ 用户界面的需求 (不同级别用户使用软件的界面要求) ➢ 资源使用需求 (运行时需要的计算机资源,开发过程中需要的人力
3· 内容描述 在数据词典的编制中,分析员最常用的描述内容或数据结 构的符号如表所示。
12
数据词典

需求结构化需求分析

需求结构化需求分析
应如何实施。
3.5 结构化分析
结构化开发方法
➢ 是现有的软件开发方法中最成熟,应用最广泛的方法, 主要特点是快速,自然和方便。
➢ 结构化方法总的指导思想自顶向下、逐步求精。它的基 本原则是功能的分解与抽象。
3.4.1 模型和建模
模型的类型
➢ 数学模型:描述系统技术方面的一系列数学公式 ➢ 描述模型:描述系统某些方面的叙述性的备忘录、报
表或列表等 ➢ 图形模型:描述系统的图表或系统某些方面的示意性
表示
3.4.1 模型和建模
什么是模型化方法
➢ 是通过抽象、概括和一般化,把研究的对象或问题转化 为本质(关系或结构)相同的另一对象或问题,从而加 以解决的方法。
3.4.2 结构化分析方法
可行性研究阶段主要考虑系统是否有可行的解决方 案,忽略了许多实际的数据元素.
结构化分析方法是面向数据流自顶向下逐步求精, 并进行需求分析.
➢ 将可行性研究阶段获得的高层DFD图进一步细化,把数据 流和数据存储定义到元素级.
使用数据流图
数据流图DFD以图形方式刻画业务系统中的数据 处理过程和数据流
➢ 听取用户的意见,补充遗漏部分,修改不正确部分.
1和2反复进行,不断细化DFD图,DD和IPO图,直到 所有系统元素都十分清楚.
分析追 踪数据 流程图
有补充修正
用户 复查
无补充 修正
需要分解
细化数据 流程图 不需分解
3.4.3 需求分析过程示意
Step1: 通过对现实环境的调查,获得当前系统 的物理模型
数据流图的优点
➢ 必不过早的着手系统的技术实现 ➢ 进一步了解系统和子系统的相互关系 ➢ 通过数据流图与用户交流当前系统知识 ➢ 分析建议的系统以确定是否定义了必要的数据和过程

软件项目管理案例教程(第4版)-第4章

软件项目管理案例教程(第4版)-第4章

4.2.4 需求文档
需求文档作用
使用对象
需求文档的作用
软件项目客户 了解软件项目能够提供的软件产品,检查软件需求是否满足需要
项目管理人员 根据需求文档制定项目的开发计划和软件过程,初步预测资源的使用
软件开发人员 理解要开发的产品及具体要开发的内容 软件测试人员 验证软件系统是否满足了预期的要求 软件维护人员 使用需求文档帮助理解软件系统内在的逻辑关系
需求验证的内容:
(1)有效性检查
对于每项需求,首先必须证明它是正确有效的,确实能解决用户面对的问题。
(2)一致性检查
在需求文档中,需求不应该冲突,即对同一系统功能不应出现不同的描述或相互矛盾的约束。 当两条需求不能同时满足时,则定义二者是不一致的。 采用形式化的需求规格说明可以用软件工具验证需求的一致性。
自动化
实现级->设计级->功能级->需求级
4.1.4 需求工程
需求工程目标:
通过对问题及其环境的理解建立分析模型,在完全理解用户需求的基础上用SRS表达用户需 求
建立分析模型:它包含问题及其环境所涉及的信息流、处理功能、用户界面、行为模型及 设计约束
编写SRS:按照软件组织定义的SRS大纲,采用某种需求描述语言来完成
这家人承诺:杯子做好后会有高额的酬谢。
爱斯基摩人不断摇头,决定一分钱也不付给你。
4.1.1 软件需求概念
客户不知道自己要什么
客户:塑料杯、木头杯、还是橡胶杯,我也不知道!
客户知道自己要什么,但表达不清
客户提要求:使用时要能适应北极的环境。
我们经常会对客户的要求产生错误的理解
我们的理解:他一定要一个结实的杯子!
潜在缺陷

软件工程导论第四章

软件工程导论第四章

模块独立性
过程内聚
时间内聚 逻辑内聚 偶然内聚 内聚性
2017/12/18
26
偶然内聚
A B A B
C
2017/12/18
27
逻辑内聚
• 如果一个模块内部的各组成部分的处理动 作在逻辑上相似,但功能都彼此不同或无 关,则称为逻辑聚合。 • 一个逻辑聚合模块往往包括若干个逻辑相 似的动作,使用时可以选用一个或几个功 能。 • 例如:把编辑各种输入数据的功能放在一 个模块中。
2017/12/18
5
2017/12/18
6
4.2 软件设计的概念和原理
• 1)模块化
模块
• 模块或组件是指具有一定功能的可以用名字调用的 程序语句集合 • 例如,过程、函数、子程序和宏等都可作为模块。 面向对象范型中的对象是模块,对象内的方法也是 模块
模块化
• 把程序划分成独立命名且可独立访问的模块,每个 模块完成一个子功能
2017/12/18
24
耦合与模块独立性
数据耦合 模块独立性 特征耦合 控制耦合 公共环境耦合 内容耦合 耦合性
原则:尽量使用数据耦合,少用控制耦合,限制公共耦合的范围,不用内容耦合
2017/12/18
25
内聚
• 内聚是一个模块内各个元素彼此结合的紧 密程度,好内聚的模块只做一件事情
功能内聚 顺序内聚 通信内聚
通常一个模块以30~60个语句行为宜
• 3)深度、宽度、扇出和扇入都应适当
深度是指软件结构中控制的层数 宽度是指软件结构中同一个层次上的模块总数 的最大值 扇出是指这个模块直接调用的下级模块数目 扇入是指直接调用这个模块的上级模块数目
2017/12/18 36

软件工程-习题及答案---第四章

软件工程-习题及答案---第四章

一、判断题1、(√)如果在需求分析阶段采用了结构化分析方法,则软件设计阶段就应采用结构化设计方法。

2、(√)概要设计与详细设计之间的关系是全局和局部的关系。

3、(×)一个模块的作用范围应该大于该模块的控制范围。

4、(√)模块间的耦合性越强,则模块的独立性越弱。

5、(×)在设计模块时,应使一个模块尽量包括多个功能。

6、(√)软件结构图可以利用数据流图映射出来。

7、(×)结构化设计是一种面向数据结构的设计方法。

8、(√)在结构化设计过程中首先要确认DFD。

二、选择题1、软件结构图的形态特征能反映程序重用率的是(C)。

A、深度B、宽度C、扇入D、扇出2、概要设计的目的是确定整个系统的(B)。

A、规模B、功能及模块结构C、费用D、测试方案3、耦合是对软件不同模块之间互连程度的度量。

各种耦合从强到弱的排列为(C)。

A、内容耦合,控制耦合,数据耦合,公共环境耦合B、内容耦合,控制耦合,公共环境耦合,数据耦合C、内容耦合,公共环境耦合,控制耦合,数据耦合D、控制耦合,内容耦合,数据耦合,公共环境耦合4、当一个模块直接使用另一个模块的内部数据时,这种模块之间的耦合为(D)。

A、数据耦合B、公共耦合C、标记耦合D、内容耦合5、数据耦合和控制耦合相比,则(B)成立。

A、数据耦合的耦合性强B、控制耦合的耦合性强C、两者的耦合性相当D、两者的耦合性需要根据具体情况分析6、衡量模块独立性的标准是(D)。

A、耦合的类型B、内聚的类型C、模块信息的隐藏性D、耦合性和内聚性7、如果某种内聚要求一个模块中包含的任务必须在同一段时间内执行,则这种内聚为(A)。

A、时间内聚B、逻辑内聚C、通信内聚D、信息内聚8、为了提高模块的独立性,模块内部最好是(C)。

A、逻辑内聚B、时间内聚C、功能内聚D、通信内聚9、在结构化设计方法中,下面哪种内聚的内聚性最弱(C)。

A、逻辑内聚B、时间内聚C、偶然内聚D、过程内聚10、软件设计是把(A)转换为软件表示的过程。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

数据流
商品目录 订单
数据存储
商品信息 订单信息 用户信息
实例2:网上电子商务(2)
基本系统模型
商品信 商品信息 息发布者 电子商务网站 商品信息 商品 订购者 订单
功能级模型
商品 商品信息 信 息发 布者 商品信息 商品 发布 订购 商品 商品 订购 订单
支付
帐号 信息
数据流
数据存储
实例1:在线考试系统(2)
基本系统模型
试题 录入 者 试题信息 在线考试系统 答案 考试 信息 录入 者 考生 试卷
功能级模型
试题 录入 者 试题信息
考试信息 考试信息
答卷
评卷 系统
生成 试题
试题
组卷 试卷 考生 试题库
考试)
试题信息 导 入 试 题 考试信息 录入者 试题信息 定制考试 答卷 答卷库 考试 状态 答题 提交 评卷 系统 考试信息 库 考试信息 组卷 试题
结构化的需求分析模型有:
系统行为模型: 数据流模型,用来描述系统中的数据处理过程 状态转换模型,用来描述系统如何对事件做出响应 实体—关系模型:关心的是寻找系统中的数据
及其之间的关系,却不关心系统中包含的功能。
结构化分析模型结构
数据 对象 描述
实体关系 图
数据 字典
数据 流图
加工 规约
医生
药品 目录
药品库
数据流图分析总结
分析步骤
找出数据流图四要素
确定系统基本模型图 确定功能级数据流图 对数据流图进行细化
注意事项
从实际业务处理流程入手 尽量如实反映手工操作过程 尽量采用业务领域语言描述 以数据流为线索,而非以操作方法为线索 要有全局整体观念 遵循简单原则
连接关系。 选择:从两个或多个可选的分量元素中选取一个。选择运算 符用方括号表示,对于多个可供选择的元素,用“|”符号分 隔。例如,[A-1 | A-2 | A-3 ] 表示三个可选数据元素。 重复:描述的分量元素重复零次或多次。例如,1{A}5 都表 示数据元素A的下限为1,上限为5。
数据字典卡片方式示例
状态转换图
控制规约
结构化分析模型结构
分析模型结构的核心是数据字典(DD,Data Dictionary),包含了软件使用或生产的所有数据 对象描述的中心库。 分析模型结构的中间层有三种视图:
数据流图(DFD,Data Flow Diagram)服务于两个目
的:一是指明数据在系统中移动时如何被变换,二是 描述对数据流进行变换的功能和子功能。 实体—关系图(E-RD,Entity-Relationship Diagram) 描述数据对象间的关系,用来进行数据建模活动的记 号。 状态转换图(STD,State Transition Diagram)指明 作为外部事件的结果,系统将如何动作。
实例分析:POS机系统
1 销售记录 1 付款 包含 M 商品 N 描述
N
1
支付记录
商品描述
实例分析:POS机系统
实体有销售记录、支付记录、商品、商品 描述 关联:
销售包含一组商品; 每个商品都有相应的描述信息; 每个支付对应一个销售。
实体的属性:
销售:编号、总价、1{商品}*,日期
发布 样式 设置
商品 信息
支付信息
生成 订单
帐号 支付 信息 支付信息
支付 机构
商品信息
商品 信息 录入
实例3:医院门诊管理系统(1)
数据源点/终点
病人 医生 医院工作人员
处理
挂号 就诊 划价、取药
数据流
电子病历 药品信息
数据存储
药品库 病历表 医生信息
数据字典
数据字典是分析模型中出现的所有名字的一个 集合,并包括有关命名实体的描述 数据字典有以下两个作用:
它是所有名字信息管理的有效机制 作为连接软件分析、设计、实现和进化阶段的开发
机构的信息存储
数据字典应该由四类元素的定义组成:
数据流 数据流分量 数据存储 处理
名字:定货报表 别名:定货信息 描述:每天一次需要定货的零件表 定义:定货报表=零件编号+零件名 称+定货数量+价格+1{供应者}3 位置:输出到打印机
名字:定货数量 别名: 描述:某个零件一次定货的数目 定义:定货数量=[ 1 | 2 | 3 | 4 | 5 ] 位置:定货报表 定货信息 名字:零件编号 别名: 描述:惟一标识一个特定零件的关 键组成 定义:零件编号=8位字符 位置:定货报表、定货信息 库存清 单 名字:价格 别名:价格范围 描述:某个零件目前参考价格或者 上下限 定义:价格=1{零件单价}2 位置:定货报表 定货信息 库存清单
支付机构
商品目录 商品订购者 商品库
实例2:网上电子商务(3)
样式文件 网页目录 网页 样式 浏览 商品 商品信息商品 选购 选购信息 商品信息 客户 商品信息 商品库 注册 会员库 个人信息 个人信息 客户信息 用户 /口令 登录 用户/口令 帐号 信息 积分 信息 订单库 订单
订购 信息
样式信息 商品 信息 发布 者
的行为模型
数 据 流 图 的 符 号
数据的源 点或终点
数据 处理
数据流
数据 处理
数据 存储
1、数据源点和终点;
2、数据处理
3、数据流
A
4、数据存储
B
B
*
A
T
C
A
T
* C
B
A和B同时输入->C
A输入->C和B
+
B
T
C
A
T
+ C
存在A或B输入->C
A输入->C或B,或C和B
数据流图的组成要素
组成要素
找出数据流图的四种组成要素:数据的源点和终 点、数据处理、数据存储、数据流。 画出基本系统模型。基本系统模型是把软件系统 看作一个整体单元,它与外部环境的数据交互关 系。 画出功能级模型。把系统划分出几个主要的数据 处理步骤,描述系统内部之间的数据流动关系 数据流图细化。对数据处理进行进一步细化,形 成详细的数据流图
实例3:医院管理系统(2)
基本系统模型
就诊信息 病人 医院门诊 管理系统 电子病历
诊断信息
就诊信息 就诊信息 就诊信息
医生
工作人员
取药 状态 药品 清单 取药 药品 价格
功能级模型
就诊信息 病人 信息
病人
付款 药品 状态 病人信息 信息 挂号 诊断 划价 诊断信息
就诊信息
补充医 院相应 工作人 员参与 的数据 流过程
第5章 结构化分析建模
阳王东
主要内容
需求分析建模 结构化需求分析 面向数据的建模方法 面向数据流的建模方法 案例分析
需求分析
需求分析的任务就是准确地指出“软件 目标产品必须做什么? 需求分析模型的目的是为基于计算机系 统提供必须的信息、功能和行为域的说 明。 模型是对系统某个方面的抽象,抛弃了 具体细节,对系统中最突出的特征作简 化
需求分析建模
用户需求一般用自然语言描述 软件系统需求必须用较专业的方式来描述。 需求分析建模就是要把自然语言描述的用 户需求转换为计算机分析语言描述的分析 模型。
用户需求
自然语言
需求分析
分析模型
计算机分析语言
结构化分析方法
结构化分析(SA,Structured Analysis)方法 是20世纪70年代,由E.Yourdon等人倡导的一 种适用于大型数据处理系统的、面向数据流的 需求分析方法。 结构化需求分析方法特征:
面向数据的建模方法
系统建模的一个重要方面就是要定义系统 处理的逻辑结构。 最广泛采用的数据建模技术是实体-关系模 型,它描述数据实体、关联及实体属性。 实体关系模型可用ERD(EntityRelationships Diagram实体关系图)来表 示:
实体
关联
实体属性 基数
对于处理,可用输入—处理—输出(IPO, Input-Process-Output)视图描述更方便
数据字典
应对组成的数据元素定义进行自顶向下的分解。 分解的原则是:当包含的元素不需要进一步定义,且每个和工程有关 的人都清楚时为止 数据字典中应该包括关于数据的信息:

支付:编号、支付方式、支付金额、支付客户、
找零、销售编号 商品:编号、数量 商品描述:名称、产地、厂家、单价
面向数据流的建模
面向数据流的建模是结构化需求分析方法 之一 采用自顶向下逐层分解,描绘满足用户要 求的软件模型 表示:
数据流图:描述系统处理过程 数据字典:模型中的数据信息集合 状态转换图:描述系统对内部或外部事件响应
实例分析:出卷系统
试卷 包含 题目 N 1 抽取 1 试题
1
1
依据
1 出卷要求
实例分析:出卷系统
试卷由一组题目组成,而题目来自试卷库 中被挑选的题目。试卷根据出卷要求选择 项目。这些实体的属性给出如下:
试题:编号、科目、题干、题干图、答案、答
案图、题型、知识点、难度、抽取时间 试卷:编号、科目、出卷人、年级、性质、总 分、难度、{题目}* 出卷要求、总分、总难度、总题型、总知识点 题目:编号、题干、题干图、答案、答案图、 题型、知识点、难度
试题 录入 者 试题信息 输 入 试 题
试题 封装 试题信息 试题
试卷
答案 考生信息 考生
考生信息
考生信息 试题库 登录
报名系统
考生库 考生信息
相关文档
最新文档