结构化分析(SA)
结构化分析方法
结构化分析⽅法什么是结构化⽅法结构是指系统内各个组成要素之间的相互联系、相互作⽤的框架。
结构化开发⽅法提出了⼀组提⾼软件结构合理性的准则,如分解与抽象、模块独⽴性、信息隐蔽等。
针对软件⽣存周期各个不同的阶段,它有结构化分析(SA)和结构化程序设计(SP)等⽅法。
结构化分析⽅法结构化分析⽅法(Structured Method,结构化⽅法)是⼀种软件开发⽅法,⼀般利⽤图形表达⽤户需求,强调开发⽅法的结构合理性以及所开发软件的结构合理性。
结构化分析⽅法给出⼀组帮助系统分析⼈员产⽣功能规约的原理与技术。
它⼀般利⽤图形表达⽤户需求。
其基本思想是⾃顶向下逐层分解。
分解和抽象是⼈们控制问题复杂性的两种基本⼿段。
对于⼀个复杂的问题,⼈们很难⼀下⼦考虑问题的所有⽅⾯和全部细节,通常可以把⼀个⼤问题分解成若⼲个⼩问题,每个⼩问题再分解成若⼲个更⼩的问题,经过多次逐层分解,每个最底层的问题都是⾜够简单、容易解决的,于是复杂的问题也就迎刃⽽解了。
这个过程就是分解过程。
结构化分析⽅法把系统看作⼀个过程的集合体,包括⼈完成的和电脑完成的。
结构化分析⽅法的特点是利⽤数据流图来帮助⼈们理解问题,对问题进⾏分析。
是⾯向数据流的需求分析⽅法,是⽬前最成熟、应⽤最⼴泛的⽅法,主要特点是快速、⾃然和⽅便。
结构化系统分析⽅法从总体上来看是⼀种强烈依赖数据流图的⾃顶向下的建模⽅法。
它不仅是需求分析技术,也是完成需求规格化的有效技术⼿段。
结构化分析所使⽤的⼯具结构化分析⼀般包括以下⼯具:数据流图(Data Flow Diagram,DFD)数据字典(DataDictionary,DD)结构化语⾔判定表判定树后⾯将对它们⼀⼀做介绍。
结构化分析的⼯作步骤在介绍具体的结构化分析⽅法之前,先对如何进⾏结构化分析做⼀个总结性描述,以帮助⼤家更好地应⽤该⽅法。
初略的说主要如下步骤:1. 研究“物质环境”。
⾸先,应画出当前系统(可能是⾮计算机系统,或是半计算机系统)的数据流图,说明系统的输⼊、输出数据流,说明系统的数据流情况,以及经历了哪些处理过程。
软件工程中的系统设计方法
软件工程中的系统设计方法在软件工程领域中,系统设计是开发高质量软件的关键步骤之一。
它涉及到定义系统的结构和组织,并确保软件能够满足用户需求、具备良好的可维护性和可扩展性。
为了有效地进行系统设计,软件工程师需要采用一些方法和技术来指导他们的工作。
本文将介绍一些常用的系统设计方法,以帮助读者更好地理解和应用于实践。
1. 结构化分析和设计方法(SA/SD)结构化分析和设计方法是一种传统的系统设计方法,旨在通过将系统分解为不同的模块来帮助软件工程师理清软件的逻辑结构。
在SA/SD方法中,软件工程师使用数据流图和数据字典来描述系统的功能和数据流动。
通过这种方式,他们能够构建出一个层次化的系统结构图,从而更好地理解系统的各个部分。
2. 面向对象分析和设计方法(OOAD)面向对象分析和设计方法是一种现代的系统设计方法,它将系统视为由对象组成的集合。
在OOAD方法中,软件工程师使用用例图、类图、时序图等工具来描述系统的需求和行为,并通过面向对象的概念来设计系统的结构。
相对于SA/SD方法,OOAD方法更加注重系统的可扩展性和可复用性,因为它通过面向对象的封装和继承机制来实现代码的模块化和重用。
3. 基于组件的设计方法基于组件的设计方法是一种将软件系统看作由可独立部署和替换的组件构成的方法。
在这种方法中,软件工程师将系统分解为不同的组件,并定义它们之间的接口和依赖关系。
通过这种方式,系统可以更容易地进行扩展和维护,因为每个组件都可以单独开发、测试和部署。
此外,基于组件的设计方法还促进了软件的可复用性,因为组件可以在不同的系统中重复使用。
4. 面向服务的设计方法(SOAD)面向服务的设计方法是一种将系统拆分为一些可独立运行的服务的方法。
每个服务都提供特定的功能,并通过网络进行通信。
在SOAD方法中,软件工程师使用服务描述语言(如WSDL)来定义各个服务的接口和数据格式,并通过服务总线(如ESB)来协调和管理这些服务。
结构化分析
结构化分析结构化分析(Structured Analysis,SA)是一种软件工程方法,旨在以一种系统化和结构化的方式对软件系统进行分析。
它旨在通过将系统划分为其组成部分和相互之间的关系来理解系统的功能和行为,并从中得出有关系统功能和需求的信息。
下面将详细介绍结构化分析的概念、特点、方法和应用。
一、概念结构化分析是一种将问题领域划分为子系统,并描述子系统之间关系的方法。
它通过将问题划分为功能模块(Functional Module)和数据流(Data Flow)之间的相互作用,来分析系统的功能和行为。
它强调将问题域看作是功能和数据之间的交互,而不是过程和数据之间的交互。
二、特点1.分层和模块化:结构化分析将复杂的系统问题划分为多个层次和模块,使问题易于理解和分析。
2.数据驱动:结构化分析强调通过数据流而不是过程流来理解系统的功能和行为。
它将问题领域视为数据之间的传输和转换,以及数据和功能之间的关系。
3.独立于实现:结构化分析关注系统的功能和行为,而不关注具体的实现细节。
它提供了一种抽象层次的描述方法,可以独立于具体的技术和实现平台。
4.可视化:结构化分析使用图形和符号来表示系统的模块、数据流和关系,使问题分析更加直观和可视化。
三、方法1.功能模块划分:结构化分析通过将系统问题划分为多个功能模块来理解和分析系统的功能。
每个功能模块代表一个特定的功能或子系统,具有定义的输入和输出。
3. 数据识别:结构化分析对系统中存在的数据进行识别和分类,以建立数据字典(Data Dictionary)。
数据字典包含了系统中使用的所有数据元素及其定义和属性。
4.关系分析:结构化分析分析系统中各个功能模块之间的关系和依赖。
通过定义模块之间的接口和依赖关系,可以确保系统的功能正确地完成。
四、应用在需求分析阶段,结构化分析可以帮助开发团队理解用户需求,并将其转化为系统的功能和行为描述。
通过分析数据流和功能模块之间的关系,可以识别出系统的功能点和子系统,并建立系统的需求规格说明书。
结构化分析方法
结构化分析方法结构化分析方法一、需求分析与需求分析方法需求阶段是软件开发的关键阶段。
需求分析的任务:准确地定义未来系统的目标,确定为了满足用户的需求系统必须做什么;用《需求规格说明书》规范的形式准确地表达用户的需求。
需求分析阶段的工作(四方面):◆需求获取:确定系统各方面需求;全面地提炼出系统的功能性与非功能性需求。
◆需求分析:对获取的需求分析和综合,给出系统解决方案和逻辑模型。
◆编写需求规格说明书:为用户、设计人员的交流提供方便,还可作为控制软件开发进程的依据。
◆需求审评:复审需求分析阶段的工作,验证需求文档的一致性、可行性等。
1、需求获取的目的清楚地理解所要解决的问题、完整地获取用户需求。
2、需求获取的内容用户需求分类:(1)功能性需求定义了系统做什么(描述系统必须支持的功能和过程)。
(2)非功能性需求(技术需求)定义了系统工作时的特性(描述操作环境和性能目标)。
3、需求分析的步骤4、需求分析过程示意(1)通过对现实环境的调查,获得当前系统的物理模型。
(2)去掉具体模型中的非本质因素,抽象出当前系统的逻辑模型。
(3)分析当前系统与目标系统的差别,建立目标系统的逻辑模型。
5、需求分析的方法结构化分析(传统建模方法)、面向对象分析。
二、结构化分析方法1、结构化分析方法(Structure Analysis---SA)(1)定义是面向数据流进行需求分析的方法,采用自顶向下,逐层分解,建立系统的处理流程,以数据流图和数据字典为主要工具,建立系统的逻辑模型。
(2)结构化分析的主要步骤通过对用户的调查,以软件的需求为线索,获取当前系统的具体模型;去掉具体模型中非本质因素,抽象出当前系统的逻辑模型;根据计算机的特点分析当前系统与目标系统的差别,建立目标系统的逻辑模型;完善目标系统并补充细节,写出目标系统的软件需求规格说明。
2、结构化分析方法使用的常用工具(1)数据流图(DFD—Data Flow Diagram )①作用从数据传递和加工的角度,在需求分析阶段以图形的方式描述数据流从输入到输出的移动变换过程,为系统建立逻辑模型。
结构化分析方法
IT项目需求分析与管理之结构化分析方法(一)作者:雪影发表于2012 年 5 月 5 日分类:软件架构|暂无评论1、概述结构化开发方法是现有的软件开发方法中最成熟,应用最广泛的方法,主要特点是快速、自然和方便。
结构化开发方法包含三部分:•结构化分析方法(SA法):结构化分析方法是面向数据流进行需求分析的方法,适合于数据处理类型软件的需求分析。
•结构化设计方法(SD 法)•结构化程序设计方法(SP 法)SA 法建模就是用抽象模型的概念,按照软件内部数据传递、变换的关系,自顶向下逐层分解,直到找到满足功能要求的所有可实现的软件模型为止。
结构化分析方法是传统软件工程中公认的技术成熟和使用广泛的需求分析方法。
它主要借助于分层数据流图和数据字典等图形及半形式化的工具表达系统的需求。
结构化分析方法结构化分析方法(Structured Analysis,简称SA 法)是面向数据流的需求分析方法,是70 年代末由Yourdon, Constaintine 及DeMarco 等人提出和发展,并得到广泛的应用。
它适合于分析大型的数据处理系统,特别是企事业管理系统。
主要应用技术和工具:数据流图(DFD);数据字典(DD);加工说明(PESPEC);实体关系图(E-R);状态变迁图(STD)等SA法的基本思想结构化分析的基本思想:“分解”和“抽象”分解:把系统的复杂性降低到可以掌握的程度,把大问题分解成若干小问题,然后分别解决。
抽象:即先考虑问题最本质的属性,暂把细节略去,以后再逐层添加细节,直至涉及到最详细的内容。
自顶向下逐层分解,顶层抽象地描述了整个系统,底层具体地画出了系统的每一个细节,而中间层是从抽象到具体的逐层过渡。
SA 法的步骤1⑴建立当前系统的“物理模型”;系统的“物理模型”就是现实环境的忠实写照,即将当前系统用DFD 图描述出来。
这样的表达与当前系统完全对应,因此用户容易理解。
SA 法的步骤2⑵抽象出当前系统的逻辑模型;分析系统的“物理模型”,抽象出其本质的因素,排除次要因素,获得用DFD 图描述的当前系统的“逻辑模型”。
结构化分析和设计方法
结构化分析和设计方法3.1.2结构化方法的基本思想结构化方法是“结构化分析”(Structured Analysis,SA)和“结构化设计”(Structured Design,SD)的总称,结构化方法是目前最成熟、应用最广泛的信息系统开发方法之一,他的优点是有一套严格的开发程序,各开发阶段都要求有完整的文档纪录,国内外已有许多成功开发的例子。
3.1.2.1结构化分析1.结构化系统分析思想结构化分析方法是由美国Yourdon公司在20世纪70年代提出的,其基本思想是将系统开发看成工程项目,有计划、有步骤地进行,是一种应用很广的开发方法,适用于分析大型信息系统。
结构化分析方法采用“自顶向下,逐层分解”的开发策略。
按照这种策略,再复杂的系统也可以有条不紊的进行,只要将复杂的系统适当分层,每层的复杂程度即可降低,这就是结构化分析的特点。
2.结构化分析方法的内容结构化分析之后获得的文档是系统分析报告,系统分析报告是由下面几个部分组成的:组织结构及其分析,现行业务流程及其分析,现有数据和数据流程及其分析,新系统地初步方案和补充材料,如开发计划等。
3.结构划分此方法的特点结构化分析方法有以下特点结构化分析方法简单,易于掌握和使用。
结构化分析方法将分析的结果用图形表示,如业务流程图,数据流程图等,这些图形都有一套标准图符组成,从而将分析结果简明易懂的展示在用户面前。
结构化分析的实施步骤实现分析实现环境中已存在的系统,在此基础上再构思即将开发的目标系统,从而大大降低了问题的复杂程度,符合人们认识世界、改造世界的一般规律。
4.结构化分析方法的局限结构化分析方法是一种行之有效的方法,但也有一定的局限性。
局限性可以概括成以下几个方面:结构化分析方法要求对系统有完整确切的需求定义,而实际上这是非常困难的。
文档资料数量大。
需要书写大量文档,随着分析的深入,这套文档需要及时更新,即使在工具的辅助下,仍有一定的难度。
人机界面表达能力差。
系统分析方法范文
系统分析方法范文系统分析方法是指对复杂系统进行分析和研究的一种方法论体系,旨在提供有效的问题解决方案和决策支持。
系统分析方法的应用领域广泛,包括企业管理、信息系统开发、工程项目管理等。
在系统分析中,需要对系统的组成、功能、流程、结构等关键要素进行深入的研究和分析,以掌握系统的内在规律和运行机制。
本文将介绍几种常用的系统分析方法。
一、数据流图法(Data Flow Diagram,简称DFD)数据流图法是一种图形化的分析工具,主要用于描述和分析系统内部的数据流动关系。
数据流图通过绘制不同层次的图形,将系统的输入、输出、处理和存储等关键元素直观地展现出来,以帮助分析师深入理解和把握系统的功能和流程。
通过数据流图的分析,可以发现系统中的瓶颈、问题和改进点,并进行相应的优化方案设计。
二、结构化分析方法(Structured Analysis,简称SA)结构化分析方法是一种将系统拆分为多个模块,通过分析每个模块的功能和关系,来理解和解决系统问题的方法。
结构化分析方法主要关注系统模块之间的层次结构和信息流动,并通过流程图、层次图等方式进行描述。
通过结构化分析方法,可以清晰地了解系统的组成和功能,有助于分析师识别问题的根源和优化路径。
三、数据建模方法(Data Modeling)数据建模方法是一种通过抽象和建模的方式,描述和分析系统的数据和数据之间的关系。
数据建模方法主要包括实体关系模型(Entity-Relationship Model,简称ER模型)和统一建模语言(Unified Modeling Language,简称UML)等。
通过数据建模方法,可以清晰地描述系统的数据结构和数据处理过程,有助于分析师理解系统的逻辑和运行机制。
四、面向对象分析方法(Object-Oriented Analysis,简称OOA)面向对象分析方法是一种以对象为中心,从面向对象的视角来分析系统的方法。
面向对象分析方法主要关注系统中的对象、类和关系,通过类图、对象图等方式进行表示和分析。
结构化分析
建立原型系统作为一种应该采取的策略的理由如下:
● 由于人类认识能力的局限性,用户往往不能预先提出全 部要求;
● 在用户和系统分析员之间存在固有的通信鸿沟,分析员 常常误解了用户的需求;
● 用户需要一个可运行的系统模型,以便获得有关未来系 统的实践经验;
● 在软件开发过程中重复和反复是必要的和不可避免的;
任务
估计人力(人月)
元/人月
计
15.0
编 码 和 单 元 测 8.0 试
综合测试
16.5
10200 9600 7950 8700
51000 144000 63600 143550
总计
44.5
402150
3 成本/效益分析方法
成本/效益分析的第一步是估计开发成本、运行费用和 新系统将带来的经济效益。而系统的经济效益等于因使用 新系统而增加的收入,加上使用新系统可以节省的运行费 用。因为运行费用和经济效益两者在软件的整个生命周期 内都存在,总的效益和生命周期的长度有关,所以应该合 理地估计软件的寿命。以后在进行成本/效益分析时一律 假设生命周期为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 图描述的当前系统的“逻辑模型”。
结构化需求分析方法
结构化分析(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 图描述的当前系统的“逻辑模型”。
(项目管理)项目需求分析与管理
C 规劝他把回扣上缴,若他不愿上交,就保持沉默。 D 直接向主管部门说明情况,由主管部门来处理。正确答案 B
单选题。每道题只有一个正确答案。
1、你认为以下哪一种做法是能凝聚人心,从而达到企业的成功? A 以工作效绩为尺度区别对待员工。 B 员工的晋升、调薪、奖励要充分考虑到员工的年龄、工资与资格。 C 一般员工与中高层管理人员区别对待。 D 尊重每个人的人格。正确答案 D
2、以下不属于团队精神包含的内容的是? A 凝聚力 B 合作意识 C 参与意识 D 士气的高昂正确答案 C
下列关于创新的论述,正确的是? A 创新与继承根本对立。 B 创新就是独立自主。 C 创新是民族进步的灵魂。 D 创新不需要引进国外新技术。正确答案 C
2、下列说法中,不符合从业人员开拓创新要求的是? A 坚定的信心和顽强的意志。 B 先天生理因素。 C 思维训练。 D 标新立异。正确答案 B
2、员工小张一贯准时上班,但在一次上班途中,突遇倾盆大雨而迟到了,你认可以下哪些做法? A 小张虽然违反了公司规定,但事出有因,情在可原,可以理解。 B 应该按照公司规定,处理小张。 C 给予小张口头批评。 D 偶然一次,应该谅解。正确答案 B
以下对于职工个体形象和企业整体形象的关系描述有误的是? A 企业的整体形象是由职工的个体形象组成的。 B 个体形象是整体形象的一部分。 C 职工个体形象与企业整体形象没有关系。 D 没有个体形象就没有整体形象。正确答案 C
D 决策者和执行者正确答案 D
二、多选题。每道题有两个或两个以上的正确答案。
1、一般来讲,没有执行力的人往往具有以下特点? A 经常对任务的困难性认识不足,比较乐观主义。 B 不注重细节,不追求完美。 C 对于任务的控制和把握能力不强,容易让事态超出自己的范围。 D 不能坚持。正确答案 ABCD
第3章 结构化分析方法1.0(抽象)
第3章结构化分析(需求分析)1.结构化方法结构化方法包括结构化分析(简称SA)、结构化设计(简称SD)和结构化程序设计(简称SP)三部分内容。
结构化方法有两类:一类是面向数据流的方法,另一类是面向数据结构的方法。
结构化方法是把拟解决的问题看成一个系统,用系统科学的思想方法来分析和解决问题。
(1)结构化方法应遵守的基本原则抽象:考虑事物的本质特性而不是它们的细节。
分解:把一个大问题经过多次逐层划分成为若干个足够简单的小问题。
模块化:将系统分解成具有指定功能的若干模块。
抽象和分解是结构化分析方法的主要手段,模块化主要用于结构化设计。
例1,杯子(抽象/分解)抽象红颜色的圆口玻璃茶杯抽象圆口玻璃茶杯抽象玻璃茶杯抽象茶杯抽象杯;茶杯抽象喝水的容器抽象容器。
分解(2)结构化方法的主要问题建立模型(回顾系统的逻辑模型导出框架)。
2.面向数据流的分析方法结构化分析就是用抽象模型的概念,按照软件的内部数据传递、变换关系,从层次的角度出发,自顶向下地逐层分解,直至找到满足功能要求的所有可实现的模块为止,即直到所有功能模块简单到可以用程序代码实现时,就不再分解了。
早期结构化分析依赖数据流图,所以亦称面向数据流的分析方法,其描述/分析工具是数据流图DFD、加工说明PSPEC和数据字典DD。
DD 主要用于描述软件的数据,DFD +PSPEC用于描述软件的功能。
(1)数据流图数据流图:描绘数据从输入移动到输出所经历的变换过程。
①数据流图符号(P46图2.4)数据流“→”:数据的流动方向,由一组特定成分的数据组成。
每个数据流都应该有一个能反映该数据流含义的名字,流向数据存储或从数据存储流出的数据流不必命名。
加工/处理“〇”:输入数据流变成输出数据流的转换过程。
每个加工都有名字和编号,编号反映该加工在数据流图中的哪个层次及哪张图中,名字简单地表明要完成的是什么加工。
一个加工框可以表示人工处理过程、一系列程序、单个程序或程序的一个模块。
结构化分析方法
结构化分析方法
• (3)建立目标系统的逻辑模型 • 这是分析工作中实质性的一步。它通过分析目标系统与现行系
统逻辑上的差别,明确目标系统“做什么”,在现行系统的逻 辑模型上建立目标系统的逻辑模型。 • 具体可按如下方式进行:
– 决定变化的范围,即决定目标系统与现行系统逻辑上的差别。 – 将变化的部分看成是一个新的处理步骤,对数据流程图进行调整。 – 由外向里对变化的部分进行分析,凭经验推断其结构,获得目标系统的
软件工程学教程Βιβλιοθήκη 结构化分析方法– 说明至今尚未详细考虑的细节。这些细节包括出错处理、系统的启动与结束、系统的输入/ 输出和系统性能方面的需求等。
– 其他。系统特有的其他必须满足的性能和限制,也需要用适当的形式做出书面记录。
结构化分析方法
• 分析阶段结束时,系统分析员必须和用户再次认真地审查系统文件,争取在系 统开始设计之前,尽可能地发现其中存在的一些错误并及时纠正,直至用户确 认这个模型表达了他们的要求后,系统文件 (软件需求说明书等) 才作为用户 和软件人员之间的“合同”而最后得到确定。
结构化分析方法
• 用结构化分析方法进行系统需求分析的具体步骤是: • (1)获得现行系统的具体模型 • 分析现实环境,理解现行系统是怎样运行的,了解现行系统的组织机构、输入
输出、资源利用情况及日常事务处理,并用具体模型来表示自己对现行系统的 理解。这一具体模型应当客观地反映现实环境的实际情况。
结构化分析方法
逻辑模型。
结构化分析方法
• (4)补充目标系统的逻辑模型 • 为了对目标系统做出完整的描述,还需要对前面已得到的结果作一些补充。
– 说明目标系统的人机界面。设计一个系统,不但要考虑系统本身,还要考虑它所处的应用 环境以及它与外界环境的相互联系和作用。因此,在最初建立现行系统和目标系统的逻辑 模型时,其研究范围和对象是计算机处理系统以及可能与计算机系统发生联系的所有部分。 最后,必须明确地指出计算机系统的范围,逐个检查模型中的每一个基本处理,决定其是 否由计算机来完成,这也决定了目标系统的人机界面。
需求分析方法论
需求分析⽅法论
下⾯是我看需求分析和设计技术⽂章⾥⾯的内容,感觉还不错,就给发出来了,希望对⼤家能有帮助。
需求分析的⽅法可谓种类繁多,不过如果按照分解的⽅式不同,可以很容易的划分出⼏种⼤类型。
我们就先从分析⽅法发展的历史开始,对其建⽴⼀个概要性的认识。
1、结构化分析⽅法(Structured Analysis,SA):最初的分析⽅法都不成体系,⽽且通常只包括⼀些笼统的告诫,在上个世纪70年底分析技术发展的分⽔岭终于出现了。
这时⼈们开始尝试使⽤标准化的⽅法,开发和推出各种名为“结构化分析”的⽅法论。
2、软系统⽅法:这是⼀个过渡性的⽅法论,并为真正流⾏过,它的出现只是证明了机构化分析⽅法的⼀些不⾜。
因为结构化分析⽅法采⽤的相对形式化的模型不仅与社会格格不⼊,⽽且在解决“不确定性”时显得⼗分⽆⼒。
3、⾯向对象的分析⽅法(Object Oriented Analysis,OOA):在20世纪90年代,结构化分析⽅法的不⾜在⾯对多变的商业世界时,显得更加苍⽩⽆⼒,这就促有了OOA的迅速发展。
4、⾯向问题域的分析(Problen Domain Oriented Analysis PDOA):现在⼜发现⾯向对象分析⽅法也存在很多的不⾜,应运⽽⽣了⼀些新的⽅法论,PDOA就是其中的⼀种,不过现在还处于研究阶段,并为⼴泛使⽤。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
结构化分析(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 图描述的当前系统的“逻辑模型”。
⑶建立目标系统的逻辑模型;分析目标系统与当前系统逻辑上的差别,从而进一步明确目标系统“做什么”,建立目标系统的“逻辑模型”(修改后的DFD 图)。
⑷为了对目标系统作完整的描述,还需要考虑人机界面和其它一些问题。
3.SA 法的描述工具⑴分层的数据流图⑵数据词典⑶描述加工逻辑的结构化语言、判定表或判定树。
2 数据流图数据流图(Data Flow Diagram,简称DFD)是描述系统中数据流程的图形工具,它标识了一个系统的逻辑输入和逻辑输出,以及把逻辑输入转换逻辑输出所需的加工处理。
1.数据流图的图符数据流图有以下4 种基本图形符号:箭头表示数据流,圆或椭圆表示加工。
双杠或者单杠表示数据存储,矩形框表示数据的源点或终点,即外部实体。
⑴数据流是数据在系统内传播的路径,由一组成固定的数据项组成。
除了与数据存储(文件)之间的数据流不用命名外,其余数据流都应该用名词或名词短语命名。
数据流可以从加工流向加工,也可以从加工流向文件或从文件流向加工,也可以从源点流向加工或从加工流向终点。
⑵加工也称为数据处理,它对数据流进行某些操作或变换。
每个加工也要有名字,通常是动词短语,简明地描述完成什么加工。
在分层的数据流图中,加工还应有编号。
⑶数据存储指暂时保存的数据,它可以是数据库文件或任何形式的数据组织。
流向数据存储的数据流可理解为写入文件,或查询文件,从数据存储流出的数据可理解为从文件读数据或得到查询结果。
⑷数据源点和终点是软件系统外部环境中的实体(包括人员、组织或其他软件系统),统称为外部实体。
一般只出现在数据流图的顶层图中。
还有一些辅助的图例:例1:画出图书预定系统的DFD 图。
现有一图书预定系统,接收由顾客发来的订单,并对订单进行验证,验证过程是根据图书目录检查订单的正确性,同时根据顾客档案确定是新顾客还是老顾客,是否有信誉。
经过验证的正确订单,暂存放在待处理的订单文件中。
对订单进行成批处理,根据出版社档案,将订单按照出版社进行分类汇总,并保存订单存根,然后将汇总订单发往各出版社。
画图步骤是:⑴首先确定外部实体(顾客、出版社)及输入、输出数据流(订单、出版社订单)。
⑵再分解顶层的加工(验证订单、汇总订单)。
⑶确定所使用的文件(图书目录文件、顾客档案等5 个文件)。
⑷用数据流将各部分连接起来,形成数据封闭。
特别要注意的是:数据流图不是传统的流程图或框图,数据流也不是控制流。
数据流图是从数据的角度来描述一个系统,而框图则是从对数据进行加工的工作人员的角度来描述系统。
数据流图中的箭头是数据流,而框图中的箭头则是控制流,控制流表达的是程序执行的次序。
下图是培训中心管理系统的数据流图,由于只有一层,因此分解的加工较多不易理解,而且如果其中某个加工较复杂,例如编号为3 的加工“付款”和编号为7 的加工“复审”仍很复杂,一时难以理解,如果不继续分解下去,直到每个加工都足够简单易于理解为止,则会影响需求分析结果的可读性。
1.画分层DFD 图的方法如图2.8 所示,如果系统规模较大,仅用一个DFD 图难以描述,会使得系统变得复杂,且难以理解。
为了降低系统的复杂性,采取“逐层分解”的技术,画分层的DFD 图。
画分层DFD 图的一般原则是:“先全局后局部,先整体后细节,先抽象后具体”。
通常将这种分层的DFD 图,分为顶层、中间层、底层。
顶层图说明了系统的边界,即系统的输入和输出数据流,顶层图只有一张。
底层图由一些不能再分解的加工组成,这些加工都已足够简单,称为基本加工。
在顶层和底层之间的是中间层。
中间层的数据流图描述了某个加工的分解,而它的组成部分又要进一步分解。
画各层DFD 图时,应“由外向内”。
画分层DFD 图的具体步骤:⑴先确定系统范围,画出顶层的DFD 图。
⑵逐层分解顶层DFD 图,获得若干中间层DFD 图。
⑶画出底层的DFD 图。
在画分层数据流图时,首先遇到的问题就是应该如何分解?不能够一下子把一个加工分解成它所有的基本加工,一张图中画出过多的加工是使人难以理解的,但是如果每次只是将一个加工分解成两个或三个加工,又可能需要分解过多的层次,也会影响系统的可理解性。
一个加工每次分解成多少个子加工才合适呢?根据经验“最多不要超过7 个”。
统计结果证明,人们能有效地同时处理7 个或7 个以下的问题,但当问题多于7 个时,处理效果就会下降。
当然也不能机械地应用,关键是要使数据流图易于理解。
同时还有几条原则可供参考:•分解应自然,概念上要合理、清晰。
•只要不影响数据流图的“易理解性”,可以适当地多分解成几部分,这样分层图的层数就可少些。
一般来说,在上层可以分解得快些,而在中、下层则应分解得慢些,因为上层是一些综合性的描述,“易理解性”相对地说不太重要。
下节我们以一个实例来说明画分层DFD 图的方法。
2 分层DFD 图的改进分层数据流图是一种比较严格又易于理解的描述方式,它的顶层描绘了系统的总貌,底层画出了系统所有的细部,而中间层则给出了从抽象到具体的逐步过渡。
1.画分层DFD 图的基本原则⑴.数据守恒与数据封闭原则所谓数据守恒是指加工的输入输出数据流是否匹配,即每一个加工既有输入数据流又有输出数据流。
或者说一个加工至少有一个输入数据流,一个输出数据流。
⑵加工分解的原则自然性:概念上合理、清晰;均匀性:理想的分解是将一个问题分解成大小均匀的几个部分;分解度:一般每一个加工每次分解最多不要超过7个子加工,应分解到基本加工为止。
⑶子图与父图的“平衡”父图中某个加工的输入输出数据流应该同相应的子图的输入输出相同(相对应),分层数据流图的这种特点称为子图与父图“平衡”。
例1 考察下图中子父图的平衡显然,图2.13 中子图与父图不平衡。
子图是父图中加工2 的分解,加工2 有输入数据流R 和M,输出数据流T,而子图则只有一个输入数据流N,却有两个输出数据流T 与S。
图2.14 中,子图是父图中加工4 的分解,虽然表面上加工4 只有一个输入数据流“订货单”,而子图却有三个输入数据流,但是如果“订货单”是由“客户”、“帐号”和“数量”三部分组成,即有如下数据条目:订货单=客户+帐号+数量(2.2.5 数据词典),则子、父图平衡。
⑷合理使用文件当文件作为某些加工之间的交界面时,文件必须画出来,一旦文件作为数据流图中的一个独立成份画出来了,那么它同其它成份之间的联系也应同时表达出来。
理解一个问题总要经过从不正确到正确,从不确切到确切的过程,需求分析的过程总是要不断反复的,一次就成功的可能性是很小的,对复杂的系统尤其如此,因此,系统分析员应随时准备对数据流图进行修改和完善,与用户取得共识,获得无二义性的需求,才能获得更正确清晰的需求说明,使得设计、编程等阶段能够顺利进行,这样做是必须和值得的。
3.分层DFD 图的改进DFD 图必须经过反复修改,才能获得最终的目标系统的逻辑(目标系统的DFD 图)。
改进的原则与画分层DFD 图的基本原则是一致的,可从以下方面考虑DFD 图的改进:⑴检查数据流的正确性①数据守恒②子图、父图的平衡③文件使用是否合理。
特别注意输入/出文件的数据流。
⑵改进DFD 图的易理解性①简化加工之间的联系(加工间的数据流越少,独立性越强,易理解性越好)。
②改进分解的均匀性。
③适当命名(各成分名称无二义性,准确、具体)。
4.数据词典分层数据流图只是表达了系统的“分解”,为了完整地描述这个系统,还需借助“数据词典”(data dictionary)和“小说明”对图中的每个数据和加工给出解释。
对数据流图中包含的所有元素的定义的集合构成了数据词典。
它有四类条目:数据流、数据项、文件及基本加工。
在定义数据流或文件时,使用表2-1 给出的符号。
将这些条目按照一定的规则组织起来,构成数据词典。
1.数据流条目给出了DFD 中数据流的定义,通常对数据流的简单描述为列出该数据流的各组成数据项。
例:数据流“乘客名单”由若干“乘客姓名”、“单位名”和“等级”组成,则词典中的“乘客名单”条目是:乘客名单={乘客姓名+单位名+等级}又如:报名单=姓名+单位名+年龄+性别+课程名也可以对数据流进行较详细的描述,如下例:例:某查询系统中,有个名为“查询”的数据流,目前“查询”有三种类型,即“顾客状况查询”、“存货查询”和“发票存根查询”,预计至1990 年底还将增加3 至4 种其他类型的查询。
系统每天约需处理2 000 次查询,每天上午9:00—10:00 是查询的高峰,此时约有1 000 次查询。
上述信息都是“用户要求”的一部分,在分析阶段应该认真收集,并记录在词典的有关条目中,所以“查询”条目描述如下。
数据流名:查询简述:系统处理的一个命令别名:无组成:[顾客状况查询|存货查询|发票存根查询]数据量:2000 次/天峰值:每天上午9:00—l0:00 有l000 次注释:至1990 年底还将增加3 至4 种查询2.文件条目给出某个文件的定义,文件的定义通常是列出文件记录的组成数据流,还可指出文件的组织方式。