第五章结构化分析与建模
结构化建模
工程领域
在机械、电子、土木等工程领 域,结构化建模用于设计、分 析和优化各种复杂系统。
社会科学
在社会学、心理学等领域,结 构化建模用于研究社会现象和 人类行为。
环境科学
在环境科学领域,结构化建模 用于评估环境影响、预测气候 变化和制定环保政策。
02
结构化建模方法
实体-关系模型
实体
客观存在并可相互区别的事物,可以是具体的人 、事、物,也可以是抽象的概念或联系。
CASE(Computer-Aided Software Engineering,计算机辅助软件工 程)工具是一类支持软件开发过程的软件工具,包括需求分析、设计、 编码、测试等各个阶段。
常见的CASE工具有Enterprise Architect、Visual Paradigm、StarUML 等,它们提供了丰富的建模元素和符号,支持多种UML图的创建和导出 。
实践与应用结合
将学习到的新技术应用到实际工作中 ,通过实践加深理解和掌握程度。
05
04
制定学习计划
根据个人和团队的需求,制定合理的 学习计划,分阶段学习和掌握新技术 。
THANK YOU
某银行核心业务系统升级
采用结构化建模技术,对银行核心业务系统进行全面梳理和 分析,提出系统升级方案和实施路径,确保新系统能够满足 银行业务发展和监管要求。
软件工程开发案例
某智能交通管理系统开发
通过结构化建模方法,对交通管理业务流程进行抽象和建模,开发出具备实时监 控、数据分析、预测预警等功能的智能交通管理系统,提高交通管理效率和安全 性。
收集和分析需求
通过访谈、问卷调查、观察等方式收集用户需求,并对需求进行 分析和整理,形成需求文档。
系统的结构化分析与设计方法
系统的结构化分析与设计⽅法1、结构化⽅法的主要思想:(1)软件是有组织、有结构的逻辑实体,其结构为⾃顶向下的形式(2)软件由程序和数据组成,其结构呈现三层组织形式,即系统、⼦系统、功能模块/数据体(3)软件结构中的各部分既独⽴⼜关联2、结构化⽅法的特点:(1)抽象性:抽象描述系统的本质内容(2)结构化、模块化、层次化:分⽽治之,由分到合(3)分析与设计线索:⾯向过程(处理) – 过程驱动⾯向数据 – 数据驱动3、总体规划:为所规划的软件系统作出⼀个战略的、宏观的、全局的技术⽅案构建宏观结构模型,为后期的分析与设计奠定基础三个⼯作内容:(1)需求调查(2)结构模型建⽴(3)总体规划⽂档撰写4、过程与数据间的关系建⽴ – U/C矩阵(1)过程(处理)对数据的操作可以分为2类: Use – 使⽤,包括Select、Insert、Delete、Update Create – 建⽴,即创建数据(2)U/C 矩阵⼆维矩阵表横向业务 – 过程;纵向 – 主题数据库(3)U/C矩阵的作⽤为⼦系统划分提供帮助5、⼦系统规划:(1)建⽴U/C矩阵(2)整理成“基本U/C矩阵” 在原始的U/C矩阵基础上,反复调换列,使得尽可能多的“C”标记处于矩阵的对⾓线附近(3)⼦系统划分按照“职能域”对U/C矩阵进⾏划分(4)⼦系统定义含业务过程和主题数据库6、⽤传统结构化和oo的观点看待系统的⽐较:1)传统⽅法:系统是处理的集合,处理与数据实体的交互,处理接受输⼊并产⽣输出2)OO⽅法:系统是交互对象的集合,对象与⼈或其他对象交互,对象发送和响应信息7、结构化分析:分析基础:总体规划说明书;分析每个业务过程的详细流程;分析每个主题数据库的数据结构;建⽴分析模型:系统业务流程图、详细的数据流图、数据字典;结构化系统分析结果:系统分析说明书8、系统流程图:对不同计算机程序、⽂件、数据库和相关⼿⼯过程设计的表达;主要从较⾼的层次描述系统的相对独⽴的⼦系统和程序模块;⽤图形化的⽅式描述了对⼦系统的组织;可以表明系统业务类:Batch(批处理) Real time(实时处理)9、10、基于数据流的系统分析 -- 数据流图数据流图:⽤处理、外部实体、数据流以及数据存储来表⽰系统需求的图表DFD的特点:图形元素少且符号简单易懂;较充分表达系统的主要需求:输⼊、输出、处理和数据存储;最终⽤户、管理⼈员和系统开发⼈员只需稍加培训即可读懂DFD图,⽅便交流。
第五章 结构化分析建模
步骤:
№ 13
确定基本元素:数据的源点或终点和数据流 捐助者向基金会提出捐助、教育单位提出用款申请、每 月给基金会的理事会一份财政状况报表… 数据源点:捐助者、教育单位 数据终点:理事会
捐助者 支出回执 教育单位 用款请求 捐款请求 资金管理 系统 财政报表 理事会
顶层数据流图
分解 将顶层数据流图进行细化,以描述系统的主要功能。
№2
№3
№4
数据流图实例
№5
顾客 订单 进货通知书 缺货通知书 采购部门 1 销售管理系统 备货单
仓库
+
统计表 经理
顶层图
№6
1层图
№7
1.1 合格订单 顾客 [订单] 检验订单 确定能否供货 处理供货 1.2 [可供货订单]
[缺货订单] [库存记录]
库存记录
缺货记录
图1
2层图
№8
2.1 根据供货单修改 库存 登记过的订单 2.2 开备货单 仓库 [备货单]
[可供货订单] 处理订单
[已供货记录]
[已供货订单]
[可供货订单] 库存记录 订单记录
处理进货
图2
2层图
№9
3.1 采购部门 [进货通知书] 根据进货单修改 库存 3.2 订单变更信息 处理缺货订单 核对后进货单 3.3 修改缺货记录
[进货记录]
[可供货订单]
缺货信息
[进货记录]
库存记录 处理供货
顾客名
统计表
订单记录
5.5 按顾客名统计
图5
2层图
课堂讨论题B:教育基金会的捐助资 金管理系统
№ 12
要求:
由捐助者向基金会提出捐助请求,经身份确认后被接 受,对捐助者进行登记并授予捐助证书,捐款存入银 行 由教育单位提出用款申请,在相应的合法性校验和核 对相应的捐款储备后做出支出
5-结构化分析建模方法
sensor data
Page 11
例:教材采购与销售管理系统数据流图
F1教材存量表
学
购书单 1
销
生
售
领书单
缺书通知
购书通知
书
2 缺书单 库
采
保
购
进书单
管 员
F2缺书登记表
Page 12
多个数据流与加工之间关系的符号
Page 13
有关数据流
(1)数据流是一组成分已知的数据。可以是一个数据,也可以是一 组数据。
按照系统的层次结构进行逐步分解,并以分层的数据 流图反映复杂的结构关系,能清楚地表达和容易理解 整个系统。
Page 16
有关数据流分层
结构化控制复杂性的方法是采用分层技术,用一套分层 DFD来分解复杂性。分层体现了抽象和信息隐藏。
一套分层DFD图包括顶层DFD 、中间层DFD和底层 DFD组成。
① 名称:名字。 ② 别名或编号。 ③ 分类 ④ 描述:描述内容或数据结构等。 ⑤ 何处使用:用途。 ⑥ 注释:数据量,峰值,限制,组织方式等
Page 40
数据字典中的分类(条目)包括5种形式:
1、数据项:数据处理中基本的不可分割的逻辑单位(如学号等) 。 2、数据流:定义数据流图中的数据流,包括名字、编号、来源去向、 数据组成等。 3、数据存储:说明存储文件的名称、编号、组成、记录数等。 4、加工:说明加工的名称、编号、激活条件、加工逻辑概括描述等。 5、外部实体:说明外部实体的名称、编号,输入/输出数据流等。但 由于源点和汇点不在系统之内,可以不描述。
Page 10
Data Stores
Data is often stored for later use.
SE(5)
课程注册管理系统的 领域模型
5.2 分析的概念和原则
5.2.2 分析原则 分析有许多方法,但是总的来看,它们应符 合以下一般原则: 能够表达和理解问题的信息域 建立描述系统信息、功能和行为的模型 能够对所建模型按一定形式进行分解 分清系统的逻辑视图和物理视图
5.3 结构化分析建模
5.3.1 分析模型的元素 结构化分析方法(Structured Method,结构化方法 结构化分析方法 ,结构化方法) 是强调开发方法的结构合理性以及所开发软件的结构 合理性的软件开发方法。
<<接口>> BillingSystemInterface + ()
<<接口>> TeacherSystemInterface + ()
5.2 分析的概念和原则
5.2.1 分析的基本概念 分析主要涉及到以下概念: 分析对象模型和动态模型 实体、边界和控制对象 泛化和特化
5.2 分析的概念和原则
5.2.2 分析原则
<<control>> CourseOfferingConflictChecker +检查课程设置之间的gt;> TeacherSearcher +搜索教师()
<<control>> CourseOfferingSearcher +搜索课程设置()
课程中促阿管 理系统的分析 类图
动态模型示例
5.4 面向对象分析
5.4.3 OOA过程
在用OOA具体地分析一个事物时,大致上遵循如 下五个基本步骤: 1. 确定对象和类 2. 确定结构(structure) 3. 确定主题(subject) 4. 确定属性(attribute) 5. 确定方法(method)
王芳-数字档案馆学-第五章 数字档案馆系统的分析与设计
第一节信息系统开发方法介绍
一、结构化生命周期法 (二)结构化分析与结构化设计 3、结构化设计的概念
结构化设计的核心是模块分解设计。结构化设计 运用一套标准的设计准则和工具,对系统控制层 次关系和模块进行分解。模块化显著提高了系统 的可修改性和可维护性,同时,为系统设计工作 的有效组织和控制提供了方便条件。结构化设计 最重要的概念包括模块化、内聚与耦合
第一节信息系统开发方法介绍
一、结构化生命周期法 (二)结构化分析与结构化设计 2、结构化设计 结构化设计是软件生命周期的重要组成部分, 是指把通过数据、功能和行为模型展示的软件 需求传送给设计阶段,由设计阶段产生体系结 构设计、接口设计、数据设计和过程设计
第一节信息系统开发方法介绍
一、结构化生命周期法 (二)结构化分析与结构化设计 2、结构化设计
第一节信息系统开发方法介绍
二、原型法
原型法的主要优点表现为:原型法的开发过程是 一个循环往复的反馈过程,符合用户对计算 机 应用的认识逐步发展、螺旋式上升的规律。 原 型法很具体,使用户能很快接触和使用系统,容 易为不熟悉计算机应用的用户所接受,可提 高 用户参与系统开发的积极性。
第一节信息系统开发方法介绍
第五章数字档案馆系统的分析与设计
本章要点
介绍了信息系统开发的一般方法,包括结构化 生命周期法、原型法、面向对象的开发方法以 及计算机辅助设计工程CASE;分析了档案信息 系统的规划方法和可行性研究;最后阐述了档 案信息系统设计的步骤和方法
关键词
档案信息系统 结构化生命周期法 原型法
面向对象的开发方法
第一节信息系统开发方法介绍
一、结构化生命周期法 (二)结构化分析与结构化设计 1、结构化分析 结构化分析方法适合于数据处理类型软件的需求 分析。由于利用图形表达需求显得清晰、简 明 ,易于学习和掌握。具体来说,结构化分析 方 法就是用抽象模型的概念,按照软件内部数 据 传递、变换的关系,自顶向下逐层分解,直 到 找到满足功能要求的所有可实现的软件为止。
软件工程第五章结构化设计
服务注册中心
发现
注册
服务消费者 调用
服务提供者
并发系统的集中式控制模型
传感器进程 用户界面Fra bibliotek传动装置进程 系统控制器
计算进程 故障处理器
系统控制模型
事件驱动系统
广播模型:发生的事件广播到所有子系统,任何能处理 该事件的子系统都会响应。该模型适用于基于网络的分 布式系统。
广播模型中的子系统注册其感兴趣的特别事件 广播模型的优点是进化比较简单
软件模块化设计
模块是一个独立命名的,拥有明确定义的输入、输出 和特性的程序实体。
软件的模块化设计(Modular Design)。系统是有 一个个模块组装而成。
软件模块化设计优点
可以简化软件的设计和实现 提高软件的可理解性和可测试性 软件更容易得到维护。
软件模块化设计缺点
结构化设计阶段 数据流设计方法 面向数据的设计 结构化程序设计 案例分析
结构化设计概述
结构化设计方法(Structured Design, SD)是基于模 块化、自顶向下细化、结构化程序设计等程序设计技 术基础上发展起来的。
结构化设计方法用模块结构图来表达程序模块之间的 关系。
缺点是子系统都知道是否和什么时候处理事件,这可能会引 起冲突。
中断驱动模型:由中断处理器对来自外部的中断进行检 测,然后在其他组件中处理这些中断。该模型适用于对 定时有严格要求的实时系统。
只用在硬件实时系统中,要求对一些事件能做出及时响应
总线架构
像水管一样随意接入 像PCI总线一样即插即用
第三部分软件设计与建模
结构化软件设计
阳王东
回答问题
什么是软件设计?有哪些阶段和任务? 什么是模块化设计?有哪些原理? 什么是软件结构和体系结构?二者有什么区别? 数据流有哪些类型?如何区分? 数据流映射的步骤是什么? 什么是结构化程序设计?有哪些工具? 什么是JSD方法?具体步骤是什么?
建立结构分析模型
建立结构分析模型结构分析模型是一种组织和管理复杂系统的工具,通过分析系统中的各个组成部分及其之间的相互关系,帮助我们理解系统的结构和运行机制。
在建立结构分析模型时,可以遵循以下步骤:1.确定系统边界:首先确定系统的边界,也就是明确系统所关注的范围和要分析的对象。
这有助于将系统划分为不同的部分,从而更容易理解和管理。
2.识别系统要素:在系统边界内,识别和列举出系统的各个要素。
要素可以是组件、子系统、过程、功能、环境等。
这些要素之间可能存在相互作用、依存关系和层次关系。
4.分析要素的属性和行为:对于每个要素,分析其属性和行为。
属性可以是静态特征,如名称、类型、属性等。
行为可以是动态的,如过程、状态转换等。
通过分析属性和行为,可以更好地理解系统的功能和运行机制。
可以使用UML(统一建模语言)等形式对要素进行描述和建模。
5.确定要素的耦合度和分离度:结构分析模型还可以帮助我们评估系统中要素之间的耦合度和分离度。
耦合度指的是要素之间的相互依赖程度,分离度指的是要素之间的独立性程度。
通过评估耦合度和分离度,可以优化系统的结构和设计,提高系统的稳定性和可维护性。
6.优化系统结构:根据分析结果,对系统的结构进行优化。
可以调整要素之间的关系、调整要素的分布和组织方式,以更好地满足系统的功能需求和性能要求。
总结起来,建立结构分析模型的过程包括确定系统边界、识别系统要素、建立要素关系图、分析要素的属性和行为、确定要素的耦合度和分离度,以及优化系统结构。
通过建立结构分析模型,可以更好地理解和管理复杂系统,帮助我们在设计和开发过程中做出更准确的决策。
结构化的需求分析与建模课件
资源规划:准确的需 求为项目团队提供了 估计所需资源和时间 的基础。
风险降低:在需求阶 段识别并处理模糊或 冲突性需求可以降低 项目风险。
非结构化与结构化需求分析
非结构化需求分析
01
02
依赖于个人经验和直觉来理解和解释需求。
往往缺乏组织和标准化,可能导致遗漏或 误解。
03
04
结构化需求分析
采用系统化、规范化的方法来捕获和处理 需求。
解决方法
可行性分析:对需求进行技术和资源上的可行性 评估,确保项目可行性。
原型反馈:通过创建原型并获取用户反馈,来澄 清和验证模糊的需求。
版本控制:采用版本控制系统(如Git)来跟踪需 求变更,确保所有相关方都了解和同意这些变更 。通过这样的方法,团队能够更为有效地管理项 目范围,降低由于需求变更带来的潜在风险。
05
06
强调使用明确的工具和技术,如数据流图 、实体关系图、用例图等。
需求分析的挑战与解决方法
挑战 需求模糊性:用户需求可能不明确或存在歧义。
技术限制:某些需求可能受到技术或资源的限制。
需求分析的挑战与解决方法
• 变更管理:需求在项目过程中可能发生变化,需 要有效的变更管理机制。
需求分析的挑战与解决方法
数据可视化
通过数据可视化手段,直 观展示需求追踪和度量的 结果,便于项目团队和利 益相关者了解需求状态。
THANKS
感谢观看
转换
描述系统从一种状态转移到另一 种状态的条件和动作,包括触发 条件、输入/输出、状态变量更新 等。
状态图
通过状态图,可以直观地展示系 统状态及其转换关系,有助于分 析人员理解和描述系统的动态行 为。
04
需求验证与管理
软件工程复习知识点_2
第一章概论1.软件的特点:(1)软件是一种逻辑实体,而不是有形的系统元件,其开发成本和进度难以准确地估算。
(2)软件是被开发的或被设计的,没有明显的制造过程,一旦开发成功,只需复制即可,但其维护的工作量大。
(3)软件的使用没有硬件那样的机械磨损和老化问题。
2.软件的分类:系统软件,居于计算机系统中最靠近硬件的一层,其他软件一般都通过系统软件发挥作用;支撑软件,支撑软件的开发和维护;应用软件,特定应用领域的专用软件。
3.软件工程定义:(1)将系统化的、严格约束的、可量化的方法应用于软件的开发、运行和维护,即将工程化应用于软件;(2)在(1)中所述方法的研究。
4.软件工程框架:目标、过程和原则。
目标指生产具有正确性、可用性和开销合宜的产品;过程指生产一个最终满足需求且达到工程目标的软件产品所需要的步骤;原则为选择适宜的开发模型、采用合适的设计方法、提供高质量的工程支撑、重视软件工程的管理。
5.软件生存周期:软件产品或软件系统从产生、投入使用到被淘汰的全过程。
大致分为六阶段:计算机系统工程、需求分析、设计、编码、测试、运行和维护。
6.能力成熟度模型CMM五个等级:初始级、可重复级、已定义级、已管理级、优化级。
7.常见模型优缺点:螺旋模型:螺旋模型是将瀑布模型与原型模型结合起来,加入风险分析环节,是一种风险驱动模型。
包括4个工作步骤:1)需求定义、2)风险分析、3)工程实现、4)评审。
瀑布模型:瀑布模型是将软件生存周期各活动规定为以线性顺序连接的若干阶段的模型;强调阶段的严格顺序和每一阶段的严格性。
前一阶段的输出是后一阶段的输入;每阶段要进行文档的复审与确认。
增量模型:融合了瀑布模型的基本成分(重复地应用)和演化模型的迭代特征,强调每一个增量都发布一个可运行的产品,能有计划地管理技术风险;喷泉模型:一种支持面向对象开发的模型,体现迭代和无间隙特征;基于构件的开发模型:支持复用;形式化方法模型:建立在严格数学基础上;8.Agile方法的价值观:个人和交互高于过程和工具;可运行软件高于详尽的文档;与客户协作高于合同(契约)谈判;对变更及时做出反应高于遵循计划。
结构化分析法的基本思想
结构化分析法的基本思想
,
结构化分析法是一种管理技术,它主要应用于分析特定组织中特定问题的结构,并分析特定组织中存在的协调机制,最终以形成有效的解决方案。
这一方法源自罗素·本贝格(Russell L. Ackoff)的思想,主要用于解决复杂问题的解决,其适用于处理夷为平地的复杂组织结构。
结构化分析法的核心思想是分析、结构化和建模,以及识别任务的关系,并通过制定有效的预防措施来解决问题。
其精髓即在于将复杂的组织、系统与环境变量统筹规划,从宏观结构上重新设计和实施有效的解决方案。
结构化分析法能有效地解决当前许多与组织系统相关的问题,它可以帮助组织分析其基础结构,将职责分配给相关部门,把业务流程建模,然后重新组织分解和标准化,以达到提高效率、减少冗余和提升服务质量的目的。
此外,在总体规划、执行并行任务和管理系统本身等方面,结构化分析法对决策非常有用。
总而言之,结构化分析法是一种很有用的理论,它不仅可以有效地避免组织产生巨大的浪费和损害,还能更好地调整、协调和优化组织的运营管理体系,最终实现系统的整体性与有效性,更能辅助系统内实体达成共同目标,让组织实现更有效的发展。
软件设计及体系结构课后习题答案(秦航)
软件设计与体系结构答案目录:第一章 (4)1.什么是软件?软件的特点是什么?软件有那些分类?2.软件设计应该包括哪些要素?软件设计在软件工程中所处的位置和重要性如何?3.请用自己的话说明软件体系结构。
传统的建筑体系结构科学和软件体系结构有何相似之处?有何不同之处?4.软件设计和软件体系结构有何关系?软件体系结构的出现有何必然性和重要意义?5.在软件设计过程中,人们需要重点考虑软件系统结构的哪些方面?第二章 (5)1.什么是软件模型?2.软件模型对软件体系结构的作用是什么?3.常用的软件模型有哪些?4.什么是软件模型的非形式化描述和形式化描述?5.软件体系结构设计方法中的水平型设计和垂直型设计各有什么特点?6.什么是ADL?7.典型的ADL有哪几种?第三章 (6)1.在整个开发过程中,UML主要起到什么作用?2.如何利用模式解决在面向对象系统分析与设计中遇到的问题?3.UML中都包含哪些图?简述这些图的作用。
14.简述用例图之间的关系。
5.简述协作图和序列图的区别。
6.神舟六号描述画出能正确表示它们之间关系的UML图。
7.某个网上银行的用户登录过程用一个时序图描述这个过程。
第四章 (9)1.简述抽象与逐步求精的含义。
2.简述模块化与信息隐藏的关系。
3.为什么软件要追求高内聚、低耦合?4.软件设计过程中包含哪些活动?5.试总结本章列举的软件体系结构设计方法的特点。
第五章 (10)1.选择一个熟悉的大型软件系统,分析其体系结构中用到的风格,以及表现出的特点(为什么要采用这种风格?采用这种风格带来哪些优势?具有哪些不足?)2.选择4种风格,设计简单的体系结构,并实现简单的原型系统3.不同的体系结构风格具有各自的特点、优劣和用途,试对管道-过滤器风格,分层系统、C2风格和基于消息总线(基于事件的隐式调用)的风格进行分析比较。
第六章 (13)1.简述面向对象方法支持的3种基本活动.2.简述面向对象的系统开发生命周期。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
结构化分析模型
系统模型从以下不同的角度表述系统:
从外部来看,它是对系统分析上下文或系统环境建模; 从行为上看,它是对系统行为建模; 从结构上看,它是对系统的体系结构和系统处理的数 据结构建模。
系统行为模型:
结构化的需求分析模型有:
数据流模型,用来描述系统中的数据处理过程。 状态转换模型,用来描述系统如何对事件做出响应。
数据流图举例
假设我们要开发一个学生管理系统。 其中开发小组通过进行进一步的需求调查,明 确了该系统的主要功能是进行学籍管理,包括 学生报到、入学、毕业的管理,学生上课情况 的管理。 通过详细的信息流程分析和数据收集后,生成 了该子系统的数据流图。
将0层 DFD中的加工“1.0报到”分解成1层DFD中的3个子 加工:“ 1.1 核对录取通知书”、“ 1.2 核对体检结果”和 “1.3同意入学”。保留0顶层DFD加工边界中的7个数据流。 随着加工的分解,新增两个数据流“已核对的录取通知书” 和“已核对的体检结果”。
数据流图举例:飞机机票预订系统:旅行社把预订机票的旅客信 息输入机票预订系统。系统为旅客安排航班,打印出取票通知单 (附应交的帐款)。旅客在飞机起飞的前一天凭取票通知等交款 取票,系统检验无误,输出机票给旅客。
旅行社
订票单 分类并检查
有效订票单 订票
航班 取票单 有效取 票单 记账文件 机票准备 账单 记账 取票通知单 航班目录
旅客
机票
机票文件
旅行社
数据流图举例(分层)
设一个工厂采购部每天需要一张定货报表。定货 的零件数据有:零件编号、名称、数量、价格、 供应者等。零件的入库、出库事务通过计算机终 端输入给定货系统。当某零件的库存数少于给定 的库存量临界值时,就应该再次定货。 数据流分析:
数据源点:仓管员(负责入库或出库事务给定货系 统); 数据终点:采购员(接收每天的定货报表); 数据流:事务,定货; 数据存储:定货信息,库存清单; 处理:处理事务,产生报表。
数据流组成示例(发票)
发票=单位名称+{商品名+数量+单价+金额} +总金额+日期+(营业员)
单位名称 商品名 数量 单价 金额
5 1
总金额 日期 营业员
数据字典条目
数据字典条目中应该包括关于数据的信息:
一般信息(名字、别名、描述等)。 定义(数据类型、长度、结构等)。 使用特点(值的范围、使用频率、使用条件、使用方式、 条件值等)。 控制信息(用户、使用特点、改变数、使用权等)。
基于场景的元素; 基于过程的活动序列的元素; 基于类的元素; 行为元素; 面向信息流的元素; 基于数据的元素。
分析模型的目标与原则
分析模型的所有元素都可以直接映射到设计模型。 创建分析模型时应遵循的原则:
模型应关注在问题或业务域内可见的需求,抽象的级 别相对高; 分析模型的每个元素都应能增加对软件需求的整体理 解,并提供对信息域、功能和系统行为的深入理解; 基于基础机构和其他非功能的模型应推延到设计阶段 再考虑; 最小化整个系统内的关联; 确认分析模型为所有共同利益者都带来价值; 尽可能保持模型简洁。
数据流图(DFD,Data Flow Diagram)服务于两个目的:一是指明 数据在系统中移动时如何被变换,二是描述对数据流进行变换的功能 和子功能。 实体—联系图(E-RD,Entity-Relationship Diagram)描述数据对 象间的关系,用来进行数据建模活动的记号。 状态转换图(STD,State Transition Diagram)指明作为外部事件 的结果,系统将如何动作。 分析模型结构的外层是规约描述:
实体—联系模型:关心的是寻找系统中的数据及其之 间的关系,却不关心系统中包含的功能。
结构化分析模型结构
数据模型
数据 对象 描述
实体联系 图 数据 流图 加工 规约
功能模型
数据 字典
状态转换图 控制规约
行为模型
结构化分析模型组成
分析模型结构的核心是数据字典(DD,Data Dictionary),包 含了软件使用或生产的所有数据对象描述的中心库。 分析模型结构的中间层有三种视图:
数据字典
定义: 数据字典——是描述数据信息的集合,它对 数据流图中的各个元素按规定格式进行详细的 描述和确切的解释,是数据流图的补充工具。 数据流图与数据字典是密不可分的,两者结 合起来构成软件的逻辑模型(分析模型)。
数据字典
数据字典有以下两个作用:
它是所有名字信息管理的有效机制。 作为连接软件分析、设计、实现和进化阶段的开发机 构的信息存储。
数据字典:模型中的数据信息集合。 数据流图-Data
Flow Diagram(简称DFD):描 述系统处理过程,即是描述输入数据流到输出数 据流的变换(即加工)过程,用于对系统的功能建模。
数据流图符号
数据源或宿 变换数据的处理 (加工) 数据存储(文件) 数据流
或 或 或
源或宿
存在于软件系统之外的人员或组织,表示软件 系统输入数据的来源和输出数据的去向,因此 也称为源点和终点。
结构化分析建模
需求分析的任务就是准确地指出“软件目标产 品必须做什么?” 需求分析的一个重要过程就是需求建模的过程。 结构化分析方法是一种传统的系统建模技术。 主要目标:
描述客户的需要; 建立软件设计的基础; 定义在软件完成后可以确认的一组需求。
分析模型
分析模型的目的是为基于计算机系统提供必须的 信息、功能和行为域的说明。 模型是对系统某个方面的抽象,抛弃了具体细节, 对系统中最突出的特征作简化。 分析模型元素:
结构化分析
结构化分析(SA,Structured Analysis)方 法是20世纪70年代,由E.Yourdon等人倡导 的一种适用于大型数据处理系统的、面向数据 流的需求分析方法。 结构化分析方法是一种传统的系统建模技术, 其过程是创建描述信息内容和数据流的模型, 依据功能和行为对系统进行划分,并描述必须 建立的系统要素。
数据字典的描述符号
符
=
号+名ຫໍສະໝຸດ 与或 或称
x=…
举
表示x由…组成
例
定义为
a+b
[a│b]
表示a和b
表示a或b
[…,…] […│…]
[a,b] 表示a或b
{…} n { …} m
(…) ″…″
重复
重复 可选 基本数据元素
{a}
{ a} (a) ″a″
8 3
表示a重复0或多次
表示a重复3到8次 表示a重复0或1次 表a是基本数据
加工“产生报表”仅按一定顺序排列订单信息, 按格式打印即可,因此不需要分解。
分层数据流图小结
DFD可以用来表示一个系统或软件在任何层次 上的抽象。 较大型软件系统DFD分成多层(有子图、父图概 念),可以表示数据流和功能的进一步的细节。
顶层
(不编号)
S
2 3
0层
1
1层
2.1
2.2
3.1
3.2
在实体—联系图中每个数据对象的属性可以使用数据对象来描述。 在数据流图中出现的每个加工/处理的功能描述包含在加工规约中。 软件控制方面的附加信息包含在控制规约中。
面向数据流的建模方法
面向数据流的建模是结构化需求分析方法之一。 采用自顶向下逐层分解,描绘满足用户要求的 软件模型。 表示:
数据流图举例
第二步求精(1层的数据流图)
将 0层 DFD 中的加工“处理事务”分解成 1层 DFD 中的 3个 子加工:“处理入库”、“处理出库”和“处理定货”。0 层DFD中的数据流“事务”随着加工的分解同步分解成2个 数据流“入库”和“出库”。保留0顶层DFD边界中的其他 数据流“库存信息”和“定货信息”。随着加工的分解, 增加一个数据存储“定货信息”。
结构化需求分析
用户需求一般用自然语言描述。 系统需求必须用较专业的方式来描述。 模型是软件设计的基础,也是创建规约的基础。 需求分析原则:
表示和理解问题的信息域; 定义软件将完成的功能; 表示软件的行为(作为外部事件的结果); 划分描述信息、功能和行为的模型,从而使得可以 以层次的方式揭示细节; 分析过程应该从要素信息移向细节实现。
班级,班主任
报 到 证
新 生 登 记 表
宿舍地址
将0层DFD中的加工“2.0入学”分解 成 1层 DFD中的 3个子加工:“ 2.1填 登记表”、“2.2分配班级”和“2.3 分配宿舍”。保留 0 顶层 DFD 加工边 界中的数据流。随着加工的分解,新 增两个数据流“已等好的登记表”和 “班级号”。
结构化分析过程
理解当前的现实环境,获得当前系统的具体模 型(物理模型)。 从当前系统的具体模型抽象出当前系统的逻辑 模型。 分析目标系统与当前系统逻辑上的差别,建立 目标系统的逻辑模型。 为目标系统的逻辑模型作补充。
结构化需求分析指导性原则
理解问题 开发模型 描述需求 建立系统模型 确定需求优先级 验证需求
2.3
数据流图的各个层次
顶层图只有代表整个软件系统的1个加工,描 述了软件系统与外界(源或宿)之间的数据流。 顶层图中的加工经分解后的图称为0层图(只有 1张)。 中间层图中至少有一个加工(也可以有多个)在 下层图中分解成一张子图。 处于最底层的图称为底层图,其中所有的加工 不再分解成新的子图。